JQuery:Keypress没有第一次按下工作

时间:2015-01-07 08:06:47

标签: javascript jquery

这是我的代码

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

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

  });

唯一的问题是,每当我第一次按键时,无论是字母还是数字,它都会显示在我的内容可编辑范围标记中。但是,第二次按下密码代码时,它只接受数字。在第一次按键时,我不知道这段代码有什么问题。

4 个答案:

答案 0 :(得分:1)

这是我用的

 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();
    }

我能够解决这个问题。如果他们的建议不起作用,请试试这个。

答案 1 :(得分:0)

使用JQuery的.on()方法。

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

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

});

答案 2 :(得分:0)

正确绑定您的活动

$(document).ready(function(){
   $(body).on("keypress","currentClass",function (e) {
        if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
            return false;
        }

   });
});

答案 3 :(得分:0)

$(currentClass).on('keypress', function (e) {
     if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
               e.preventDefault();
               alert("pressed");
               return false;
    }
});

event - on

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