如何触发回车键按下事件

37

我需要知道如何在一个输入框上触发回车键。也就是说,作为对某些其他事件的响应(而不是按键),我需要触发一个值为13的按键。

(澄清一下,我不想在按下回车键时触发某个事件。如果我不知道如何做到这一点,我可以在SO上找到已经问答解决了几次。我想要相反的结果。我正在尝试开发一种解决方法,需要模拟一个“回车”按键的按下。)


1
这个怎么样? https://dev59.com/3XA75IYBdhLWcg3weY5f - Anand
1
有一个可工作的演示 http://jsfiddle.net/3xTM2/ - Anand
3个回答

58

4
请注意,这只会触发事件,但默认行为不会实际发生。 http://jsfiddle.net/YkLhs/ - Kevin B
1
@KevinB,有没有一种方法可以触发默认行为?证据无可争议表明这有效,但它没有触发我需要的行为。 - Derek Henderson
试着从另一个角度看待它。为什么你需要模拟这个事件? - Kevin B
@KevinB,昨天我问了这个问题:https://dev59.com/8mQm5IYBdhLWcg3w-S6Y。如你所见,没有答案。但我注意到在select2中,如果您输入与之匹配的搜索词并按Enter键,则该项将添加到匹配对象列表中。因此,我正在设置一个“粘贴”事件,并通过逗号和空格拆分粘贴的列表。我希望如果我在每个标记后触发enter,它会像我输入该术语并按enter一样运行,但不幸的是似乎不起作用。 - Derek Henderson
从文档中可以看到,只需要使用 $("#selectid").select2("val", ["thefirstvalue","thesecondvalue","thethirdvalue"]); 即可。 - Kevin B
@KevinB,我真希望那就是全部所需。:( 但是,不幸的是,那不起作用。 - Derek Henderson

4
 var e = $.Event( "keyup", { keyCode: 13 } );
    $('#yourInput').trigger(e);

对我很有用,我用的是“keyCode”而不是“which”


1
模拟按下回车键。
var e = jQuery.Event("keypress");
        e.which = 13 
        e.keyCode = 13
        $('#email').focus();
        $('#email').trigger(e);

捕获回车键按下事件。
$('#email').keypress(function (e) {
if (e.which == '13') {
    alert('code');
}});

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