【问题标题】:How to trigger enter event with jquery [duplicate]如何使用jquery触发输入事件[重复]
【发布时间】:2013-07-16 13:41:25
【问题描述】:

我有以下工作:

$('textarea').keypress(function(e) {
    if (e.keyCode == '13') {
        alert('code');
    }
});

但是我想在页面加载时触发同样的事情,我尝试了以下但它不起作用:

var e = jQuery.Event("keypress");
e.which = 13; // Enter
$('textarea').trigger(e);

注意:我想要那里的第一个代码片段,我不想删除它。

【问题讨论】:

  • 您应该在处理程序中检查 e.which 而不是 e.keyCode
  • jbabey 你似乎是对的。你能把答案作为答案让我接受吗?

标签: jquery


【解决方案1】:

使用“which”而不是 keyCode。 “哪个”在这两种情况下都有效

$('textarea').keypress(function (e) {
    if (e.which == '13') {
        alert('code');
    }
});

【讨论】:

  • (e.keyCode || e.which) === 13
  • @karaxuna 修改了代码。
  • +1 我认为你的答案就是他所需要的:)
  • @karaxuna 感谢 +1
  • @ChiragVidani 不知何故你没有修改代码
【解决方案2】:

这里有一个解决你的问题http://jsfiddle.net/dima_k/zPv2a/

$('button').click(function(){
    debugger
    var e = $.Event("keypress");
    e.keyCode = 13; // # Some key code value
    $('#textbox').trigger(e);
});

 $('#textbox').keypress(function(e)
 {
    if (e.keyCode == '13') {
        alert('code');
    }
});

【讨论】:

  • 这不是这里答案的复制/粘贴吗? stackoverflow.com/questions/832059/…
  • 看一个问题。我相信,他已经找到了您附加的解决方案,但它对他不起作用。所以我附上了一个带有工作解决方案的 jsFiddle,只是为了证明它有效。
【解决方案3】:

替代解决方案:

var textarea = $('textarea').keypress(OnTextareaKeypress);
$(function(){
    OnTextareaKeypress.call(textarea[0], { e: { which: 13 } });
});

function OnTextareaKeypress(e) {
    if (e.which == '13') {
        alert('code');
    }
}

【讨论】:

    猜你喜欢
    • 2013-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 2011-03-27
    相关资源
    最近更新 更多