使用jQuery,我如何找到哪个键被按下时,我绑定到按键事件?
$('#searchbox input').bind('keypress', function(e) {});
我想在按下ENTER键时触发提交。
(更新)
尽管我自己找到了(或者更好的:一个)答案,但似乎还有变化的空间;)
keyCode和它之间有区别吗?特别是如果我只找ENTER,它永远不会是unicode键?
是否有些浏览器提供一种属性,而其他浏览器提供另一种?
使用jQuery,我如何找到哪个键被按下时,我绑定到按键事件?
$('#searchbox input').bind('keypress', function(e) {});
我想在按下ENTER键时触发提交。
(更新)
尽管我自己找到了(或者更好的:一个)答案,但似乎还有变化的空间;)
keyCode和它之间有区别吗?特别是如果我只找ENTER,它永远不会是unicode键?
是否有些浏览器提供一种属性,而其他浏览器提供另一种?
当前回答
$(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();
});
});
希望这对你有所帮助!!
其他回答
试试这个
$('#searchbox input').bind('keypress', function(e) {
if(e.keyCode==13){
// Enter pressed... do anything here...
}
});
鉴于您正在使用jQuery,您绝对应该使用.which。是的,不同的浏览器设置不同的属性,但jQuery会对它们进行规范化,并在每种情况下设置.which值。参见http://api.jquery.com/keydown/上的文档,它说明:
要确定按下了哪个键,可以检查传递给处理程序函数的事件对象。虽然浏览器使用不同的属性来存储这些信息,但jQuery规范化了.which属性,因此我们可以可靠地使用它来检索键代码。
我将用e.preventDefault();来补充解决方案代码。 在输入字段的情况下,我们不参加提交的形式进入按下
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
e.preventDefault();
//Do something
}
其实这样更好:
var code = e.keyCode || e.which;
if(code == 13) { //Enter keycode
//Do something
}
有些浏览器使用keyCode,有些使用which。如果你正在使用jQuery,你可以可靠地使用它,因为jQuery标准化了东西。实际上,
$('#searchbox input').bind('keypress', function(e) {
if(e.keyCode==13){
}
});