可能重复:
How to allow only numeric (0-9) in HTML inputbox using jQuery?
我有一个jquery片段,它只允许特定文本框中的数字。如果用户键入一个字母/特殊字符,它根本不允许该字符进入文本框。但它不起作用。< / p>
$("#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()
会出现问题。有人可以帮忙吗?
答案 0 :(得分:0)
根据这个Opera preventDefault() on keydown event,有些浏览器不支持在keydown上使用preventDefault。这可能是你的情况吗?
也许你可以试试按键吗?
那或者你可以使用正则表达式并用“”
替换无效字符答案 1 :(得分:0)
Funnily it works,如果您之间没有任何提醒,请提醒代码中断。