Javascript 检索按键事件
当按下enter键时,我正在实现按键提交。我制作了一个jquery插件,需要一些帮助:Javascript 检索按键事件,javascript,jquery,keypress,enter,Javascript,Jquery,Keypress,Enter,当按下enter键时,我正在实现按键提交。我制作了一个jquery插件,需要一些帮助: jQuery.fn.enterPress = function(obj, button) { if (e.which == 13) { jQuery(button).click(); } }; 在这个函数中,我检索obj(html表单)和按钮(将单击哪个按钮) 我不确定,但我可
jQuery.fn.enterPress = function(obj, button) {
if (e.which == 13) {
jQuery(button).click();
}
};
在这个函数中,我检索obj(html表单)和按钮(将单击哪个按钮)
我不确定,但我可能不需要这个“obj”。
我的问题是我没有这个“e”。我尝试了很多方法,但我不知道我怎么能重新尝试
我已作出以下声明:
jQuery('#' + obj.id).keypress(function(e) {}
但是函数被触发了两次,有时是三次
谢谢此代码在单击“13键代码”==“输入”时发送表单
此代码在单击“13键代码”==“输入”时发送表单
jQuery对此有一个内置的方法,称为keypress
$("#target").keypress(function(event) {
if ( event.which == 13 ) {
event.preventDefault();
// do stuff here
}
}
如果您想添加一个更通用的方法,用于将“enter”按键事件绑定到jQuery对象,然后单击按钮(如您在问题和注释中所述),您可以执行以下操作:
var $button = jQuery('#somebutton');
jQuery.fn.enterPress = function(callback) {
jQuery(this).keypress(function(event) {
if ( event.which == 13 ) {
event.preventDefault();
callback();
}
});
};
$button.click(function(){
alert('button was clicked');
})
jQuery('#target').enterPress(function() {
// what you want to happen after enter is pressed
$button.click();
});
jQuery有一个内置的方法,称为keypress
$("#target").keypress(function(event) {
if ( event.which == 13 ) {
event.preventDefault();
// do stuff here
}
}
如果您想添加一个更通用的方法,用于将“enter”按键事件绑定到jQuery对象,然后单击按钮(如您在问题和注释中所述),您可以执行以下操作:
var $button = jQuery('#somebutton');
jQuery.fn.enterPress = function(callback) {
jQuery(this).keypress(function(event) {
if ( event.which == 13 ) {
event.preventDefault();
callback();
}
});
};
$button.click(function(){
alert('button was clicked');
})
jQuery('#target').enterPress(function() {
// what you want to happen after enter is pressed
$button.click();
});
返回键已绑定到提交HTML表单,但下面是如何使用各种方法侦听按键事件: 常规JavaScript:
document.getElementById('yourFormId').addEventListener('keypress', function(e) {
if(e.keyCode === 13)
document.getElementById('yourButtonId').click();
}, false);
document.getElementById('yourFormId').onkeypress = function(event) {
if(event.keyCode === 13)
document.getElementById('yourButtonId').click();
};
$('yourFormId').keypress(function(event) {
if(event.which === 13)
$('yourButtonId').trigger('click');
});
也是常规JavaScript:
document.getElementById('yourFormId').addEventListener('keypress', function(e) {
if(e.keyCode === 13)
document.getElementById('yourButtonId').click();
}, false);
document.getElementById('yourFormId').onkeypress = function(event) {
if(event.keyCode === 13)
document.getElementById('yourButtonId').click();
};
$('yourFormId').keypress(function(event) {
if(event.which === 13)
$('yourButtonId').trigger('click');
});
或jQuery:
document.getElementById('yourFormId').addEventListener('keypress', function(e) {
if(e.keyCode === 13)
document.getElementById('yourButtonId').click();
}, false);
document.getElementById('yourFormId').onkeypress = function(event) {
if(event.keyCode === 13)
document.getElementById('yourButtonId').click();
};
$('yourFormId').keypress(function(event) {
if(event.which === 13)
$('yourButtonId').trigger('click');
});
return
键已经绑定到提交HTML表单,但下面是如何使用各种方法侦听按键事件:
常规JavaScript:
document.getElementById('yourFormId').addEventListener('keypress', function(e) {
if(e.keyCode === 13)
document.getElementById('yourButtonId').click();
}, false);
document.getElementById('yourFormId').onkeypress = function(event) {
if(event.keyCode === 13)
document.getElementById('yourButtonId').click();
};
$('yourFormId').keypress(function(event) {
if(event.which === 13)
$('yourButtonId').trigger('click');
});
也是常规JavaScript:
document.getElementById('yourFormId').addEventListener('keypress', function(e) {
if(e.keyCode === 13)
document.getElementById('yourButtonId').click();
}, false);
document.getElementById('yourFormId').onkeypress = function(event) {
if(event.keyCode === 13)
document.getElementById('yourButtonId').click();
};
$('yourFormId').keypress(function(event) {
if(event.which === 13)
$('yourButtonId').trigger('click');
});
或jQuery:
document.getElementById('yourFormId').addEventListener('keypress', function(e) {
if(e.keyCode === 13)
document.getElementById('yourButtonId').click();
}, false);
document.getElementById('yourFormId').onkeypress = function(event) {
if(event.keyCode === 13)
document.getElementById('yourButtonId').click();
};
$('yourFormId').keypress(function(event) {
if(event.which === 13)
$('yourButtonId').trigger('click');
});
jQuery已经有了一个
keypress
方法,您可以直接使用它。你为什么要发展你自己的?事实上,我想要更一般的东西。比如传递属性(在我的例子中,button id.jQuery已经有了一个keypress
方法,你可以直接使用它。你开发自己的方法有什么原因吗?实际上,我想要更一般的方法。比如传递属性(在我的例子中,按钮id.Hello@Cody,我尝试了你的答案,preventdefault不起作用。他没有点击按钮。此外,我尝试了isPreventDefault(),总是出现“false”。此外,我尝试了e.stopPropagation(),它起作用,但只有在第二次点击enter时才会触发(如果页面在字段中加载了焦点,我按enter键)。我在Jquery.fn.enterPress中发出了警报,并一直开火,但obj.keypress…只在第二次点击时才启动。嘿@viictoorh,我更新了我的答案,并提供了一个工作示例:谢谢@Cody。它起作用了。我将对我的建议进行一些修改。你好@Cody,我尝试了你的答案,默认值没有起作用。他没有点击按钮。此外,我尝试了isPreventDefault()并始终输入“false”。此外,我尝试了e.stopPropagation(),它工作正常,但仅在第二次按enter键时触发(如果页面在字段中加载了焦点,并且我按enter键).我在Jquery.fn.enterPress中放了一个警报,并且总是开火,但是obj.keypress…只有在第二次点击时才开火。嘿@viictoorh,我已经更新了我的答案,并提供了一个工作示例:谢谢@Cody。它成功了。我将对我的建议进行一些修改。