Jquery仅在启动开发人员工具后才能工作

时间:2017-03-14 19:24:04

标签: javascript jquery jsf

我试图在我的文本框中设置一个限制,只输入数字,方法是为每个带有模式的文本框ID添加事件监听器。

$(document).ready(function() {
  var numOnlyTextBoxes = 'input[id$="NumOnly"]';
  $(numOnlyTextBoxes).each(function() {
    alert(this.id);
    this.addEventListener("input", function(e) {
      var val = this.value,
        rx = /[^\d]/g;
      if (rx.test(val)) {
        var pos = this.selectionStart;
        this.value = val.replace(rx, "");
        this.selectionStart = pos;
        this.selectionEnd = pos - 1;
      }
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<INPUT id="firstNumOnly" TYPE="text" NAME="">
<INPUT id="secondNumOnly" TYPE="text" NAME="">
<INPUT id="thirdNumOnly" TYPE="text" NAME="">

我使用了这个addEventListener方法来确保它也在复制粘贴中得到验证。显示第一个警告框,之后还有2个警报未到来。只有当我启动IE开发人员工具时,所有文本框才能正常工作。 正如此链接Why does JavaScript only work after opening developer tools in IE once?中所指定的,我没有使用任何控制台,我也尝试将$.ajax({cache: false, ...})放在我的代码中,但即使这样它也无法正常工作。浏览器:IE11 但是一个简单的HTML或JS小提琴工作

我收到错误,例如.addEventListener不受支持,因此我的onload函数也有以下代码

/* IE11 Fix for SP2010 */ 
                if (typeof(UserAgentInfo) != 'undefined' &amp;&amp; !window.addEventListener) 
                { 
                    UserAgentInfo.strBrowser=1; 
                }

0 个答案:

没有答案