为什么下面代码部分显示的javascript函数在Firefox和Chrome中不起作用?但在IE中效果很好
此代码负责防止用户输入非数字字符,如除数字[0-9]以外的任何ascii字符。在IE中可以正常工作,但在Firefox和Chrome中不行。非常感谢您的帮助和建议 多谢各位为什么下面代码部分显示的javascript函数在Firefox和Chrome中不起作用?但在IE中效果很好,javascript,Javascript,此代码负责防止用户输入非数字字符,如除数字[0-9]以外的任何ascii字符。在IE中可以正常工作,但在Firefox和Chrome中不行。非常感谢您的帮助和建议 多谢各位 'oKeyPress': function (e) { e = e || window.event; var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode; return !(charCode > 31 &a
'oKeyPress': function (e) {
e = e || window.event;
var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
return !(charCode > 31 && (charCode < 48 || charCode > 57));
}
'oKeyPress':函数(e){
e=e | | window.event;
var charCode=(navigator.appName==“Netscape”)?e.which:e.keyCode;
返回!(charCode>31&(charCode<48|charCode>57));
}
在您的按键中
事件以获取字符编码
使用以下方法:
return (window.event ? e.keyCode : e.which)
使用;非浏览器检测:
var charCode = e.charCode || e.keyCode;
谢谢你们的建议和反馈;我刚刚发现为什么它以前不能在Firefox和chrome上运行。它不起作用的原因是因为我使用了类似于C代码背后代码的代码:
this.txtApsId.Attributes.Add(“onkeypress”,“return(函数(e){var charCode=(navigator.appName='Netscape')?e.which:e.keyCode;return charCode>31&(charCode<48 | | charCode>57)}(事件| | window event));
感谢注意使用
navigator.appName
来决定键代码使用哪个属性。有关如何修复,请参阅:-第二个答案说明了如何修复。虽然事件名称可能也有误,但注意到“oKeyPress”可能应该是“onKeyPress”?Netscape check,yikes,烧掉你用来获取该引用的任何东西<代码>var keyCode=e.keyCode | | e.which@epascarello:还有e.charCode
。jQuery有e.charCode!=无效的e、 charCode:e.keyCode
其中e.which
尚未设置。
this.txtApsId.Attributes.Add("onkeypress", "return (function(e) {var charCode = (navigator.appName == 'Netscape') ? e.which : e.keyCode; return charCode > 31 && (charCode < 48 || charCode > 57); }(event || window.event))");