【问题标题】:How to trigger the enter keypress如何触发回车键
【发布时间】:2013-06-20 15:36:32
【问题描述】:

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

(澄清,我不想在按下回车键时触发某些事件。如果我不知道该怎么做,我会发现在 SO 上已多次询问和回答。我想要相反. 我正在尝试开发一种解决方法,需要我模拟“输入”按键。)

【问题讨论】:

标签: javascript jquery


【解决方案1】:

你可以这样做 -

var e = $.Event( "keypress", { which: 13 } );
$('#yourInput').trigger(e);

【讨论】:

  • 请注意,这只会触发事件,实际上不会发生默认行为。 jsfiddle.net/YkLhs
  • @KevinB,有什么方法可以触发默认行为吗?无可争辩的证据表明这是有效的,但它并没有触发我需要的行为。
  • 尝试从另一个方向看它。为什么需要模拟这个事件?
  • @KevinB,昨天我问了这个问题:stackoverflow.com/questions/17197223/…。如您所见,没有答案。但我注意到,在 select2 中,如果您输入匹配的搜索词并按 Enter,则该项目将添加到匹配对象列表中。因此,我正在设置一个“粘贴”事件并用逗号和空格分割粘贴的列表。我希望如果我在每个标记之后触发 enter,它的行为就像我输入了这个词并按下了 enter,但是这似乎不起作用。
  • 从文档中,只需$("#selectid").select2("val", ["thefirstvalue","thesecondvalue","thethirdvalue"]);
【解决方案2】:
 var e = $.Event( "keyup", { keyCode: 13 } );
    $('#yourInput').trigger(e);

为我工作,而不是'which',我使用'keyCode'

【讨论】:

  • 拯救了我的一天。谢谢。
【解决方案3】:

模拟回车键

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');
}});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多