使用jQuery,我如何找到哪个键被按下时,我绑定到按键事件?
$('#searchbox input').bind('keypress', function(e) {});
我想在按下ENTER键时触发提交。
(更新)
尽管我自己找到了(或者更好的:一个)答案,但似乎还有变化的空间;)
keyCode和它之间有区别吗?特别是如果我只找ENTER,它永远不会是unicode键?
是否有些浏览器提供一种属性,而其他浏览器提供另一种?
使用jQuery,我如何找到哪个键被按下时,我绑定到按键事件?
$('#searchbox input').bind('keypress', function(e) {});
我想在按下ENTER键时触发提交。
(更新)
尽管我自己找到了(或者更好的:一个)答案,但似乎还有变化的空间;)
keyCode和它之间有区别吗?特别是如果我只找ENTER,它永远不会是unicode键?
是否有些浏览器提供一种属性,而其他浏览器提供另一种?
当前回答
编辑:这只适用于IE…
我知道这是一个旧帖子,但有人可能会发现这很有用。
键事件是映射的,所以除了使用keycode值,还可以使用key值使其更具可读性。
$(document).ready( function() {
$('#searchbox input').keydown(function(e)
{
setTimeout(function ()
{
//rather than using keyup, you can use keydown to capture
//the input as it's being typed.
//You may need to use a timeout in order to allow the input to be updated
}, 5);
});
if(e.key == "Enter")
{
//Enter key was pressed, do stuff
}else if(e.key == "Spacebar")
{
//Spacebar was pressed, do stuff
}
});
这里是一个小抄与映射键,我从这个博客
其他回答
$(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。热键插件,支持键组合:
$(document).bind('keydown', 'ctrl+c', fn);
编辑:这只适用于IE…
我知道这是一个旧帖子,但有人可能会发现这很有用。
键事件是映射的,所以除了使用keycode值,还可以使用key值使其更具可读性。
$(document).ready( function() {
$('#searchbox input').keydown(function(e)
{
setTimeout(function ()
{
//rather than using keyup, you can use keydown to capture
//the input as it's being typed.
//You may need to use a timeout in order to allow the input to be updated
}, 5);
});
if(e.key == "Enter")
{
//Enter key was pressed, do stuff
}else if(e.key == "Spacebar")
{
//Spacebar was pressed, do stuff
}
});
这里是一个小抄与映射键,我从这个博客
$(document).bind('keypress', function (e) {
console.log(e.which); //or alert(e.which);
});
你应该有firbug来查看控制台的结果