我正在使用JavaScript来验证文本框只接受Numbers。
我的代码如下:
onkeypress="return ( event.charCode >= 48 && event.charCode <= 57);"
现在,如果我键入120并想要将其更改为50,那么我想删除120并将新值设为50,但后退空间不起作用。
适用于谷歌浏览器,但不适用于Mozilla Firefox。
答案 0 :(得分:4)
尝试以下方法:
onkeypress="var key = event.keyCode || event.charCode; return ((key >= 48 && key <= 57) || key == 8);";
这允许任何数字键(48
到57
)和退格键(8
)。通过将keyCode
用于密钥代码并使用charCode
作为后备,这也增加了更多支持。 JsFiddle:http://jsfiddle.net/3kszzzxr/
答案 1 :(得分:1)
这适用于所有浏览器.. 首先得到正确的事件
var key = (window.event) ? event.keyCode : event.which;
使用它
return (key >= 48 && key <= 57 || key ==8);
试试这个,明确添加退格键码 http://jsfiddle.net/m22zzc51/1/
答案 2 :(得分:1)
嗯,好吧,我认为你必须在文本框值改变时运行一个函数,我使用匹配来保留文本框值中的数字。
textbox.value=textbox.value.replace(/[^0-9]/ig,'');
/* From 0 to 9 (just numbers) */
这是一种更受支持的方式,但它可能会延迟几毫秒来删除字母......
某人在文本框中粘贴一些字母非常危险,然后您可以轻松地使用onkeyup / down,onpaste或big onchange,如果可能,您可以将此事件保存在某个脚本标记/文件中。
每个人都可以跳转你的代码,然后如果你使用服务器端进行验证,只需使用reg就可以使用数字。