使用jQuery,我如何找到哪个键被按下时,我绑定到按键事件?
$('#searchbox input').bind('keypress', function(e) {});
我想在按下ENTER键时触发提交。
(更新)
尽管我自己找到了(或者更好的:一个)答案,但似乎还有变化的空间;)
keyCode和它之间有区别吗?特别是如果我只找ENTER,它永远不会是unicode键?
是否有些浏览器提供一种属性,而其他浏览器提供另一种?
使用jQuery,我如何找到哪个键被按下时,我绑定到按键事件?
$('#searchbox input').bind('keypress', function(e) {});
我想在按下ENTER键时触发提交。
(更新)
尽管我自己找到了(或者更好的:一个)答案,但似乎还有变化的空间;)
keyCode和它之间有区别吗?特别是如果我只找ENTER,它永远不会是unicode键?
是否有些浏览器提供一种属性,而其他浏览器提供另一种?
当前回答
以下是对各种浏览器行为的详细描述http://unixpapa.com/js/key.html
其他回答
根据Kilian的回答:
如果只输入按键很重要:
<form action="javascript:alert('Enter');">
<input type=text value="press enter">
</form>
有些浏览器使用keyCode,有些使用which。如果你正在使用jQuery,你可以可靠地使用它,因为jQuery标准化了东西。实际上,
$('#searchbox input').bind('keypress', function(e) {
if(e.keyCode==13){
}
});
该事件。keyCode和事件。不推荐使用。参见上面的@Gibolt答案或查看文档:https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent
事件。应该使用Key
按键事件也已弃用: https://developer.mozilla.org/en-US/docs/Web/API/Document/keypress_event
好吧,我瞎了:
e.which
将包含键的ASCII码。
参见https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/which
$(document).ready(function(){
$("#btnSubmit").bind("click",function(){$('#'+'<%=btnUpload.ClientID %>').trigger("click");return false;});
$("body, input, textarea").keypress(function(e){
if(e.which==13) $("#btnSubmit").click();
});
});
希望这对你有所帮助!!