通过js键码允许带数字的点/句点

时间:2018-07-13 06:40:12

标签: javascript jquery html css keycode

我为一个简单的事实而苦苦挣扎,一个方法将允许所有数字值,包括'。'(十进制/句号/点)。这是我的方法。它适用于允许数值。无法与keyCode == 190

一起使用
function IsNumeric(e) {
    var keyCode = e.keyCode == 0 ? e.charCode : e.keyCode;
    var ret = (keyCode >= 48 && keyCode <= 57 && keyCode == 190);
    document.getElementById("error_numeric").style.display = ret ? "none" : "inline";
    return ret;
}

<input class="form-control" name="teacher_cnic" value="" onkeypress="return IsNumeric(event);" type="text" placeholder="12345.1234567.1" required>

它正以这种onkeypress="return IsAlphaNumeric(event);"

的形式被调用

2 个答案:

答案 0 :(得分:2)

&&的第二次测试的||更改为keyCode

function IsNumeric(e) {
        var keyCode = e.keyCode == 0 ? e.charCode : e.keyCode;
        var ret = ((keyCode >= 48 && keyCode <= 57) || keyCode == 190);
        document.getElementById("error_numeric").style.display = ret ? "none" : "inline";
        return ret;
    }

答案 1 :(得分:1)

事件被触发onkeypress时,此事件的十进制/句号/点keyCode为keyCode=46

因此,函数的条件逻辑如下,

var ret = ((keyCode >= 48 && keyCode <= 57) || keyCode == 46);

这解决了问题。