我有一个 jquery 片段,它只允许特定文本框中的数字。如果用户键入字母/特殊字符,它根本不允许字符进入文本框。但它不起作用。
$("#PostalCode").keydown(function (e) {
if (e.shiftKey || e.ctrlKey || e.altKey) { // if shift, ctrl or alt keys held down
e.preventDefault(); // Prevent character input
} else {
var n = e.keyCode;
if (!((n == 8) // backspace
|| (n == 46) // delete
|| (n >= 35 && n <= 40) // arrow keys/home/end
|| (n >= 48 && n <= 57) // numbers on keyboard
|| (n >= 96 && n <= 105)) // number on keypad
) {
alert("in if");
e.preventDefault(); // Prevent character input
}
}
});
每当我输入非数字(字母或特殊字符)时都会显示警报消息,这意味着我的逻辑可能是正确的。但是字符仍然显示在文本框中,这意味着e.preventDefault()
. 任何人都可以帮忙吗?