我有一个楼层号输入框,我想禁用其中的第一个字符。所以我用这个javascript:
<script type="text/javascript">
//<![CDATA[
$("#_floorNumber_id).on("keydown", function(e) {
if (($(this).get(0).selectionStart == 0 && (e.keyCode < 35 || e.keyCode > 40))
|| ($(this).get(0).selectionStart == 1 && e.keyCode == 8)) {
return false;
}
});
$("#_floorNumber_id").bind("contextmenu", function(e) {
e.preventDefault();
});
//]]>
</script>
但是似乎脚本没有被读取。我尝试对它添加警报,但警报均未显示。这就是我的.jspx的样子:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<jsp:output omit-xml-declaration="yes"/>
<script type="text/javascript">
//<![CDATA[
$("#_floorNumber_id").on("keydown", function(e) {
if (($(this).get(0).selectionStart == 0 && (e.keyCode < 35 || e.keyCode > 40))
|| ($(this).get(0).selectionStart == 1 && e.keyCode == 8)) {
return false;
}
});
$("#_floorNumber_id").bind("contextmenu", function(e) {
e.preventDefault();
});
//]]>
</script>
<div id="wrapper">
<div class="container-fluid">
<div>
<ol class="breadcrumb">
<li class="disabled"><a>Floor</a></li>
<li><a href="/hms/floors?page=1&size=${empty param.size ? 10 : param.size}">List of Floors</a></li>
<li class="active"><span>Register Floor</span></li>
</ol>
</div>
<form:create id="fc_hms_domain_Floor" modelAttribute="floor" path="/floors" render="${empty dependencies}" >
<field:inputFloor field="floorNumber" id="c_hms_domain_Floor_floorNumber" max="30" min="3" required="true" value="${floor.floorNumber}"/>
<field:textarea field="description" id="c_hms_domain_Floor_description" required="true" />
<field:textarea field="floorComments" id="c_hms_domain_Floor_floorComments" required="true" />
</form:create>
<form:dependency dependencies="${dependencies}" id="d_hms_domain_Floor" render="${not empty dependencies}" />
</div>
</div>
</div>
我只是在.jspx中使用javascript的新手。我希望有一个人可以帮助我。谢谢。
最佳答案
好吧,在页面上添加元素之前,脚本似乎已运行。这就像在进入房间之前先呼叫一个人的名字。找不到元素。脚本需要放在元素之后,您需要使用文档准备就绪,窗口加载或事件委托。
后:
<input>
<script>
//your code here
</script>
准备好文件
$( function(){
//your code here
});
负载
$(window).on("load" , function() {
//your code here
});
或事件委派
$(document).on("click", "#_floorNumber_id", "keydown", function(e){
console.log(e.which);
});