我有这个 JavaScript 代码,只允许在文本框中输入数字
function CheckNumeric(e) {
if (window.event) // IE
{
if ((e.keyCode < 48 || e.keyCode > 57) & e.keyCode != 8) {
event.returnValue = false;
return false;
}
}
else { // Fire Fox
if ((e.which < 48 || e.which > 57) & e.which != 8) {
e.preventDefault();
return false;
}
}
}
问题是它也阻止了“TAB”按钮!我愿意允许。
我怎样才能做到这一点?
最佳答案
我会将 CheckNumeric
函数更改为类似的内容,并使用正则表达式来确定有效/无效输入。 /[0-9\t\b]+/
匹配数字、制表符和退格键。如果您还想允许空间,请将其更改为 /[0-9\t\b\s]+/
function CheckNumeric(e)
{
var charCode = e.charCode || e.keyCode;
var character = String.fromCharCode(charCode);
if(!character.match(/[0-9\t\b]+/))
{
if(window.event)
event.returnValue = false;
else
e.preventDefault();
return false;
}
return true;
}
此外,为了正确捕获键码,您应该绑定(bind)到 onKeyPress
事件而不是 onKeyDown
,因为它不会为数字键盘提供正确的键码。
<input type="text" onkeypress="CheckNumeric(event)"/>
关于javascript - 仅允许输入数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13749215/