输入发送键仅在 Javascript 内有效一次

Enter key to send works only once in Javascript

我有一个提交表单的代码,每当我们在文本区域按 enter 键时...它有效,但代码只运行一次。每当我再次按回车提交时,它都不起作用。

这是我的 Javascript 代码:

$('.comment_ta').on("keypress" , function(e){

    if (e.which == 13) {
       $(this).closest('form').submit();
    }

});

这是表单和文本区域..代码在 ruby n haml

=form_for( ([c,c.confessioncomments.build]), remote: true ) do |f|
        .cmnt
            =f.text_area :content class: "form-control comment_ta"
        =f.submit 'Comment'     , clasS:'btn btn-default cbtn'

现在它第一次运行良好,但每当我在提交后呈现新表单时它都不起作用。

试一试:

$(document).on('keypress', '.comment_ta', function(e){

    if (e.which == 13) {
       $(this).closest('form').submit();
    }

});

我认为这是因为 .comment_ta 元素在 DOM 中被替换,这意味着 .on 事件侦听器将不再工作。通过将事件侦听器应用于 document,事件侦听器应该继续工作。