Javascript 检索按键事件

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表单)和按钮(将单击哪个按钮) 我不确定,但我可

当按下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) {}
但是函数被触发了两次,有时是三次


谢谢

此代码在单击“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。它成功了。我将对我的建议进行一些修改。