Javascript 在 .jspx 中
Javascript in .jspx
我有一个楼层号输入框,我想禁用其中的第一个字符。所以我用这个 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。我希望有一个人可以帮助我。谢谢。
好吧,看起来您的脚本在您将元素添加到页面之前就已经运行了。这就像在他们进入房间之前叫一个人的名字。将找不到该元素。要么脚本需要在元素之后,你需要使用文档就绪,window onload,或者事件委托。
之后:
<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);
});
我有一个楼层号输入框,我想禁用其中的第一个字符。所以我用这个 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。我希望有一个人可以帮助我。谢谢。
好吧,看起来您的脚本在您将元素添加到页面之前就已经运行了。这就像在他们进入房间之前叫一个人的名字。将找不到该元素。要么脚本需要在元素之后,你需要使用文档就绪,window onload,或者事件委托。
之后:
<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);
});