检索按键事件

时间:2013-03-21 15:07:36

标签: javascript jquery keypress enter

按下输入时,我正在实施按键提交。我制作了一个jquery插件,我需要一些帮助:

jQuery.fn.enterPress = function(obj, button) {          
            if (e.which == 13) {
                jQuery(button).click();

            }           
    };

在此函数中,我检索obj(html表单)和按钮(将单击其中一个)。

我不确定,但我可能不需要这个“obj”。 我的问题是我没有'e'。我尝试了很多方法,但我不知道如何才能收回它。

我已经做到了:

jQuery('#' + obj.id).keypress(function(e) {}

但是这个功能被解雇了两次,有时是三次。

由于

3 个答案:

答案 0 :(得分:1)

jQuery有一个内置的方法,用于称为按键。

$("#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();
});

Working Example

答案 1 :(得分:0)

此代码在点击“13 keyCode”==“Enter”

时发送表单
$(document).ready(function(e){
    $(document).keypress(function(e){
        if(e.keyCode == 13)
           $("#myFOrm").submit();
    });
});

答案 2 :(得分:0)

return密钥已经绑定提交HTML表单,但是这里是你如何使用各种方法监听keypress事件:

常规JavaScript:

document.getElementById('yourFormId').addEventListener('keypress', function(e) {
    if(e.keyCode === 13)
        document.getElementById('yourButtonId').click();
}, false);

常规JavaScript:

document.getElementById('yourFormId').onkeypress = function(event) {
    if(event.keyCode === 13)
        document.getElementById('yourButtonId').click();
};

或jQuery:

$('yourFormId').keypress(function(event) {
    if(event.which === 13)
        $('yourButtonId').trigger('click');
});