输入key在Javascript中只发送一次作品

输入key在Javascript中只发送一次作品,javascript,jquery,ruby-on-rails,jquery-events,Javascript,Jquery,Ruby On Rails,Jquery Events,我有一个提交表单的代码,每当我们在文本区域按enter键时。。。它可以工作,但代码只运行一次。每当我再次按enter键提交时,它都不起作用 以下是我的Javascript代码: $('.comment_ta').on("keypress" , function(e){ if (e.which == 13) { $(this).closest('form').submit(); } }); 这里是表单和文本区域。。代码是用ruby n haml编写的 =form

我有一个提交表单的代码,每当我们在文本区域按enter键时。。。它可以工作,但代码只运行一次。每当我再次按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();
    }

});

我假设这是因为DOM中的
.comment\u ta
元素被替换,这意味着
.on
事件侦听器将不再工作。通过将事件侦听器应用于
文档
,事件侦听器应该继续工作

提交表单时会发生什么情况?
.comment\u ta
元素是否已销毁并重新追加?是否重新追加了相同的类。。所以我想这应该不是问题,是的,这是100%的问题,因为您只在加载时附加事件处理程序。你需要使用委派的事件处理程序,而不是我现在有委派的概念。。。谢谢:)不,它被本地化为
。评论\u ta