为什么javascript函数不工作?

为什么javascript函数不工作?,javascript,jquery,asp.net,javascript-events,Javascript,Jquery,Asp.net,Javascript Events,我用这个函数只在文本框中输入数字,它工作了 function isNumberKey(evt) { var charCode = (evt.which) ? evt.which : event.keyCode if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; } 现在它不工作了,它也允许字母,为什么 您应该

我用这个函数只在文本框中输入数字,它工作了

function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

    return true;
}

现在它不工作了,它也允许字母,为什么

您应该在测试中使用
|
而不是
&

在我的
azerty
键盘上,
-
符号charcode是
54
,而不是
45

function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57 || charCode == 45) )
        return false;

    return true;
}
函数isNumberKey(evt){
var charCode=(evt.which)?evt.which:event.keyCode
如果(charCode>31&(charCode<48 | | charCode>57 | | charCode==45))
返回false;
返回true;
}

编辑

看起来像你的密码。
54
值来自我的
azerty
键盘。

不过,您应该在支票中使用
|
而不是
&

您需要在组中使用
|

函数isNumberKey(evt){
var charCode=(evt.which)?evt.which:event.keyCode;
var bool=(charCode>31)&(charCode<48 | | charCode>57 | | String.fromCharCode(charCode)==“-”;
返回!布尔;
}

在我的win机器上
45
-
吗?我使用的是
azerty
键盘,可能这是链接的,我的小提琴可以使用它。要点是:使用
|
而不是
&&
@cl3m是的,你对条件是正确的,如果情况是交叉的,那么我猜
字符串。fromCharCode(event.keyCode)==“-”
匹配将是更好的选择。
function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57 || charCode == 45) )
        return false;

    return true;
}