我为一个简单的事实而苦苦挣扎,一个方法将允许所有数字值,包括'。'(十进制/句号/点)。这是我的方法。它适用于允许数值。无法与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);"
答案 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);
这解决了问题。