Raj*_*pta 20 javascript jquery events keycode keypress
我正在尝试以下代码space-bar在输入框中按下时触发js方法.
<input id="j1" />
$('#j1').keypress (function (event){
alert(event.keycode)
});
Run Code Online (Sandbox Code Playgroud)
在firefox中,只有在enter按下时才会返回正确的值,其他键返回的值每次只有0.在IE/chrome中,这非常有效.
Tim*_*own 27
在非IE浏览器中,您需要事件中的whichor charCode属性keypress而不是keyCode属性.该keypress事件是检测输入的字符,而keyup并keydown针对detcting物理按键(这些事件中,keyCode在每一个主要的浏览器的工作原理).
var charCode = (typeof event.which == "number") ? event.which : event.keyCode;
Run Code Online (Sandbox Code Playgroud)
但是,jQuery which通过使用与此类似的代码来规范化keypress事件的属性,所以在jQuery中你只需要
var charCode = event.which;
Run Code Online (Sandbox Code Playgroud)
有关关键事件的更多详细信息,请参阅http://unixpapa.com/js/key.html.
问题不是所有浏览器在按键上都有相同的实现.解决方案是检查key注册的所有可能位置.在这种情况下:event.keycode和event.which
有关详细信息,请参阅此帖子
编辑
最后挖出我的旧函数,这是我使用的实际代码:
evt = (evt) ? evt : event;
var charCode = evt.which || evt.charCode || evt.keyCode || 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19860 次 |
| 最近记录: |