Bob*_*ett -1 javascript firefox numerical nan
我有一个文本框设置如下:
<input type="text" name="CardNumber" id="CardNumber" maxlength="7" onkeypress="if(isNaN(this.value+String.fromCharCode(event.keyCode))) return false;" onblur="ValidateCardNumber()"/>
Run Code Online (Sandbox Code Playgroud)
(注意:ValidateCardNumber() 是一个单独的函数,用于检查长度等内容,但它不是将字段限制为数值的一部分)。
这在 IE 中工作得很好。它将允许我输入数字,但忽略非数字按键。
在 Firefox 中,我无法在该文本框中输入任何内容。
有什么想法吗?
我愿意以不同的方式坚持到底。
谢谢。
调试会告诉你问题所在
console.log(this.value+String.fromCharCode(event.keyCode));
Run Code Online (Sandbox Code Playgroud)
查看控制台你会看到

现在看看它返回了什么
console.log(this.value, event.keyCode);
Run Code Online (Sandbox Code Playgroud)

所以关键代码总是返回零。
你需要做的是使用event.whichfirefox
console.log(this.value+String.fromCharCode(event.which || event.keyCode));
Run Code Online (Sandbox Code Playgroud)
