我使用此功能仅在文本框中输入数字,并且可以正常工作。

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) && charCode == 45)
        return false;

    return true;
}


现在它不起作用,它也允许字母,为什么?

最佳答案

您需要在组中使用||



function isNumberKey(evt) {
  var charCode = (evt.which) ? evt.which : event.keyCode;
  var bool = (charCode > 31) && (charCode < 48 || charCode > 57 || String.fromCharCode(charCode) == "-");

  return !bool;

}

<input type="text" onkeypress='return isNumberKey(event)'>

关于javascript - 为什么javascript函数不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36054532/

10-12 15:50