Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery:Keypress在第一次按下时不工作_Javascript_Jquery - Fatal编程技术网

Javascript JQuery:Keypress在第一次按下时不工作

Javascript JQuery:Keypress在第一次按下时不工作,javascript,jquery,Javascript,Jquery,这是我的密码 $(currentClass).keypress(function (e) { if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) { return false; } }); $(currentClass).按键(功能(e){ 如果(e.which!=8&&e.w

这是我的密码

  $(currentClass).keypress(function (e) {

            if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
                return false;
            }

  });
$(currentClass).按键(功能(e){
如果(e.which!=8&&e.which!=0&&e.which<48 | e.which>57)){
返回false;
}
});
唯一的问题是,每次我第一次按一个键,不管是字母还是数字,它都会显示在我的内容可编辑span标记中。然而,当我第二次按字母键时,代码工作,它只接受数字。在第一次按键时,我不知道这段代码有什么问题。

使用JQuery的
.on()
方法

$(currentClass).on("keypress",function (e) {

        if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
            return false;
        }
$(currentClass).on(“按键”,功能(e){
如果(e.which!=8&&e.which!=0&&e.which<48 | e.which>57)){
返回false;
}
}))

把你的事件妥善地捆绑起来
$(文档).ready(函数(){
$(正文).on(“按键”,“当前类”,函数(e){
如果(e.which!=8&&e.which!=0&&e.which<48 | e.which>57)){
返回false;
}
});
});
$(currentClass).on('keypress',函数(e){
如果(e.which!=8&&e.which!=0&&e.which<48 | e.which>57)){
e、 预防默认值();
警惕(“按下”);
返回false;
}
});

这可能会对您有所帮助:)

这是我使用的

 if ($.inArray($event.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
        // Allow: Ctrl+A
        ($event.keyCode == 65 && $event.ctrlKey === true) ||
        // Allow: home, end, left, right
        ($event.keyCode >= 35 && $event.keyCode <= 39)) {
        // let it happen, don't do anything
        return;
    }
    // Ensure that it is a number and stop the keypress
    if (($event.shiftKey || ($event.keyCode < 48 || $event.keyCode > 57)) && ($event.keyCode < 96 || $event.keyCode > 105)) {
        $event.preventDefault();
    }
if($.inArray($event.keyCode,[46,8,9,27,13,110,190])!=-1||
//允许:Ctrl+A
($event.keyCode==65&&$event.ctrlKey==true)||
//允许:起始、结束、左、右

($event.keyCode>=35&&$event.keyCode您好,当我在另一个项目上尝试它时,它可以工作,但是当我在Angular和Jquery混合的项目中使用它时,它仍然与我的代码相同。Angular.js的示例:谢谢!我能够找到另一个解决方案。这个解决方案可以工作,但不适用于我正在做的应用程序。@PipeMan如果您有answer请分享。:)谢谢!!嗨!我已经发布了一个答案,请浏览该线程。再次感谢!这是旧的,但我想把它扔出去,我在使用.keypress时遇到了问题,不得不切换到类似下面使用.on语法的解决方案。
$(currentClass).on('keypress', function (e) {
     if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
               e.preventDefault();
               alert("pressed");
               return false;
    }
});
 if ($.inArray($event.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
        // Allow: Ctrl+A
        ($event.keyCode == 65 && $event.ctrlKey === true) ||
        // Allow: home, end, left, right
        ($event.keyCode >= 35 && $event.keyCode <= 39)) {
        // let it happen, don't do anything
        return;
    }
    // Ensure that it is a number and stop the keypress
    if (($event.shiftKey || ($event.keyCode < 48 || $event.keyCode > 57)) && ($event.keyCode < 96 || $event.keyCode > 105)) {
        $event.preventDefault();
    }