jQuery javascript按键function无法在IE8上运行

我有以下jquery函数,避免在输入文本中键入“1”:

​ $("#myId").keypress(function(e) { var x=e.charCode; if (x == '49'){ e.preventDefault(); } });​ 

这是jsfiddle

这不适用于IE8。 我的错误在哪里? 提前致谢!

编辑JAVASCRIPT版本

  function checkNumber(event) { var x=e.which; if (x == 49){ event.preventDefault(); } } 

charCode不是跨浏览器,你可以使用jQuery属性:

event.which属性规范化event.keyCodeevent.which 。 建议观看event.which键盘输入键。

 var x = e.which; 

如果你不使用jQuery,你可以编码:

 var x = e.charCode || e.keyCode; 

请改用e.which ,因为并非所有浏览器都支持e.charCode

此外,您可以考虑使用.keyup()事件而不是.keypress()

看到类似问题的答案 。 尝试使用keydown而不是keypresskeyCode而不是charCode

 $("#myId").keydown(function(e) { var x=e.keyCode; if (x == '49'){ e.preventDefault(); } });​ 

按键的jQuery文档列出了使用keydown的一些很好的理由,其中最重要的是它只会触发一次按住,而keypress会报告字符,而不是键(这在处理类似事情时会出现问题)大写锁定。)