首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.jspx中的Javascript

.jspx中的Javascript
EN

Stack Overflow用户
提问于 2016-11-18 13:30:20
回答 1查看 866关注 0票数 2

我有一个输入框的楼层号码,我想禁用其中的第一个字符。所以我使用这个javascript:

代码语言: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的样子:

代码语言:javascript
复制
<?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 &amp;&amp; (e.keyCode < 35 || e.keyCode > 40))
        || ($(this).get(0).selectionStart == 1 &amp;&amp; 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&amp;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的新手。我希望有人能帮我。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-18 14:17:13

看起来,在将元素添加到页面之前,脚本就会运行。这就像在一个人进入房间之前叫他们的名字一样。将找不到该元素。无论脚本需要在元素后面,您都需要使用文档就绪、窗口加载或事件委派。

之后:

代码语言:javascript
复制
<input>
<script>
   //your code here
</script>

文件准备就绪

代码语言:javascript
复制
$( function(){
   //your code here
});

满载

代码语言:javascript
复制
$(window).on("load" , function() {
   //your code here
});

或事件委托

代码语言:javascript
复制
$(document).on("click", "#_floorNumber_id", "keydown", function(e){
  console.log(e.which);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40678383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档