Jquery 如何让Firefox理解箭头键与%和';
我有一个价格字段,我只想接受数字(我不喜欢默认的html5输入,比如输入[number]等等),所以我写了以下内容:Jquery 如何让Firefox理解箭头键与%和';,jquery,regex,firefox,keycode,Jquery,Regex,Firefox,Keycode,我有一个价格字段,我只想接受数字(我不喜欢默认的html5输入,比如输入[number]等等),所以我写了以下内容: <input type="text" name="price" placeholder="" onkeypress="validate(event)"> function validate(evt) { var theEvent = evt || window.event; var key = theEvent.keyCode || theEvent
<input type="text" name="price" placeholder="" onkeypress="validate(event)">
function validate(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var code = theEvent.keyCode || theEvent.which;
var regex = /[0-9]/;
if( !regex.test(key) && code != 8/*backspace*/ && code != 37/*left*/ && code != 39/*right*/ && code != 13/*enter*/ && code != 46/*delet*/ && code != 9/*tab*/){
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
};
};
功能验证(evt){
var theEvent=evt | | window.event;
var key=theEvent.keyCode | | theEvent.which;
key=String.fromCharCode(key);
var代码=theEvent.keyCode | | theEvent.which;
var regex=/[0-9]/;
如果(!regex.test(key)&&code!=8/*退格*/&code!=37/*左*/&code!=39/*右*/&code!=13/*输入*/&code!=46/*删除*/&code!=9/*制表符*/){
theEvent.returnValue=false;
如果(theEvent.preventDefault)theEvent.preventDefault();
};
};
如您所见,添加了一些字符,如左箭头键和右箭头键、制表符等,以便更好地导航。它在铬合金中工作完美。在Firefox中,一些字符是无意中添加的。例如,左箭头键和%的键代码相同!所以现在我的价格域在Firefox中接受%!我还发现了一个简单的regexp代码,有同样的问题。我怎样才能让Firefox理解 实际上,
%
的键和左箭头键
不一样
%
.charCode==37
.keyCode==0
。其中==37
左箭头
.charCode==0
.keyCode==37
。其中==0
您需要修复程序逻辑,而不是通过…=theEvent.keyCode | | theEvent.which
(原始)在浏览器开始正确、完整地执行之前,键盘处理总是一团糟。实际上%
的键和左箭头键
是不同的
%
.charCode==37
.keyCode==0
。其中==37
左箭头
.charCode==0
.keyCode==37
。其中==0
您需要修复程序逻辑,而不是通过…=theEvent.keyCode | | theEvent.which
(原始)在浏览器开始正确、完整地实现之前,键盘处理一直都是一团糟。我不知道有什么区别!TnxI不知道有什么区别!Tnx