jquery keyup函数检查数字

Ada*_*Sam 14 jquery function character keyup

我正在尝试创建一个输入字段,用户只能输入数字.这个功能对我来说已经很好了:

        $('#p_first').keyup(function(event){
        if(isNaN(String.fromCharCode(event.which))){
            var value = $(this).val();

            $(this).val(value.substr(0,value.length-1));
        }
    });
Run Code Online (Sandbox Code Playgroud)

但问题是,当用户持有带有角色的键时,功能键盘没有触发....任何想法我怎么能禁止这个?

Kev*_*sox 32

尝试绑定到keypress事件而不是keyup.按住键时会反复触发.当按下的键不是您可以调用的号码时preventDefault(),这将使键不会被放入输入标签中.

   $('#p_first').keypress(function(event){

       if(event.which != 8 && isNaN(String.fromCharCode(event.which))){
           event.preventDefault(); //stop character from entering input
       }

   });
Run Code Online (Sandbox Code Playgroud)

工作示例: http ://jsfiddle.net/rTWrb/2/


小智 6

我决定使用@Rahul Yadav 提供的答案,但这是错误的,因为它没有考虑具有不同代码的数字键盘键。

在这里,您可以看到代码表摘录

这里我实现的功能:

function isNumberKey(e) {
    var result = false; 
    try {
        var charCode = (e.which) ? e.which : e.keyCode;
        if ((charCode >= 48 && charCode <= 57) || (charCode >= 96 && charCode <= 105)) {
            result = true;
        }
    }
    catch(err) {
        //console.log(err);
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)


web*_*per 5

尝试这个解决方案:

\n\n
jQuery(\'.numbersOnly\').keyup(function () { \n    this.value = this.value.replace(/[^0-9\\.]/g,\'\');\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

演示: http: //jsfiddle.net/DbRTj/

\n\n

同样的问题:

\n\n\n


归档时间:

查看次数:

74068 次

最近记录:

6 年,6 月 前