输入key在Javascript中只发送一次作品
我有一个提交表单的代码,每当我们在文本区域按enter键时。。。它可以工作,但代码只运行一次。每当我再次按enter键提交时,它都不起作用 以下是我的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
$('.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