使用jQuery将按下Enter键与按钮单击链接起来

6

我在一个模态表单上有一些按钮:

<div class="block-footer align-right">
<button type="button">Submit</button>
<button type="button">Submit &amp; Close</button>
<button type="button">Close</button>
</div>

当用户按下回车键时,我该如何使第一个按钮“提交”被“点击”。这对于点击操作很重要,因为我希望用户在点击时能够直观地看到按钮的颜色变化。

请注意,我已经执行了以下操作,并将函数与该按钮绑定:

$('#modal button:contains("Submit")').click(function () {
    submitHandler(dObj.$link, $('#main-form'), false);
}); 

请注意,如果用户已经切换到其中一个按钮,并按下回车键,则他们将期望激活该按钮。 - nnnnnn
@Anne:如果这个答案对您有帮助,请接受它。如果不是,请告诉我们。 - Misam
2个回答

11

这将检测到“Enter”键的按下

$(document).keypress(function(event){

    var keycode = (event.keyCode ? event.keyCode : event.which);
    if(keycode == '13'){
        $('#Submit').click();   
    }

});

1
只是一点提示,在JS中,你可以使用event.keyCode || event.which作为(event.keyCode ? event.keyCode : event.which)的替代方案,因为||运算符仅在第一个值为falsey(null、NaN等)时返回第二个操作数。好答案!+1 - nbrooks
除了@nbrooks所说的之外,如果您正在使用jQuery,您可以只需说event.which,因为jQuery将其标准化以跨浏览器工作。 - nnnnnn

1

考虑一下处理submit()怎么样?

$('form#id').submit(function(){

    //some validation

    return false; //dont allow submit
});

我的模态框上有一个表单,但按钮不在表单内。我认为你所建议的做法行不通。 - user1464139
然后,也许可以从该按钮调用提交到表单本身,$('form#id').submit(); - fedmich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接