Jquery中是否有任何事件只在用户点击文本框中的回车按钮时才会触发?或者任何插件,可以添加到包括这个?如果不是,我该如何编写一个快速插件来做到这一点?


当前回答

这里有一个jquery插件来做到这一点

(function($) {
    $.fn.onEnter = function(func) {
        this.bind('keypress', function(e) {
            if (e.keyCode == 13) func.apply(this, [e]);    
        });               
        return this; 
     };
})(jQuery);

要使用它,包括代码并像这样设置:

$( function () {
    console.log($("input"));
    $("input").onEnter( function() {
        $(this).val("Enter key pressed");                
    });
});

jsfiddle的这里http://jsfiddle.net/VrwgP/30/

其他回答

如果你的输入是搜索,你也可以使用on 'search'事件。例子

<input type="search" placeholder="Search" id="searchTextBox">

.

$("#searchPostTextBox").on('search', function () {
    alert("search value: "+$(this).val());
});

这里有一个jquery插件来做到这一点

(function($) {
    $.fn.onEnter = function(func) {
        this.bind('keypress', function(e) {
            if (e.keyCode == 13) func.apply(this, [e]);    
        });               
        return this; 
     };
})(jQuery);

要使用它,包括代码并像这样设置:

$( function () {
    console.log($("input"));
    $("input").onEnter( function() {
        $(this).val("Enter key pressed");                
    });
});

jsfiddle的这里http://jsfiddle.net/VrwgP/30/

   $('#textbox').on('keypress', function (e) {
         if(e.which === 13){

            //Disable textbox to prevent multiple submit
            $(this).attr("disabled", "disabled");

            //Do Stuff, submit, etc..

            //Enable the textbox again if needed.
            $(this).removeAttr("disabled");
         }
   });

我无法让按键事件为进入按钮开火,挠了我的头一段时间,直到我阅读jQuery文档:

当浏览器注册键盘输入时,按键事件被发送给元素。这与按下键事件类似,除了修改器和非打印键(如Shift、Esc和delete)触发按下事件,而不是按下键事件。”(https://api.jquery.com/keypress/)

我必须使用keyup或keydown事件来捕捉按下enter按钮。

HTML代码:

<input type="text" name="txt1" id="txt1" onkeypress="return AddKeyPress(event);" />      

<input type="button" id="btnclick">

Java脚本代码

function AddKeyPress(e) { 
        // look for window.event in case event isn't passed in
        e = e || window.event;
        if (e.keyCode == 13) {
            document.getElementById('btnEmail').click();
            return false;
        }
        return true;
    }

您的表单没有默认提交按钮