isNaN无法在Firefox中运行

时间:2014-02-14 03:12:00

标签: javascript firefox nan numerical

我有一个文本框设置方式如下:

<input type="text" name="CardNumber" id="CardNumber" maxlength="7" onkeypress="if(isNaN(this.value+String.fromCharCode(event.keyCode))) return false;" onblur="ValidateCardNumber()"/>

(注意:ValidateCardNumber()是一个单独的函数,用于检查其他内容的长度,但它不是将字段限制为数值的一部分。)

这在IE中运行良好。它允许我输入数字但忽略非数字按键。

在Firefox中,我无法在该文本框中输入任何内容。

有什么想法吗?

我对不同的方法持开放态度。

感谢。

1 个答案:

答案 0 :(得分:4)

调试会显示问题

console.log(this.value+String.fromCharCode(event.keyCode));

看着你会看到的控制台

enter image description here

现在看看它的回归

console.log(this.value, event.keyCode);

enter image description here

因此密钥代码总是返回零。

您需要做的是使用event.which for firefox

console.log(this.value+String.fromCharCode(event.which || event.keyCode));

enter image description here