gpt4 book ai didi

javascript - 在rails3.1rc5中使用enter通过ajax提交textarea中的内容

转载 作者:行者123 更新时间:2023-12-02 20:11:38 25 4
gpt4 key购买 nike

我有一个带有文本区域表单的 Rails 应用程序,例如

<%= form_for Comment.new, :remote => true do |f| %>
<%= f.text_area :comment %>
<% end %>

我的javascript代码如下

<script>
$(function(){
$('textarea').keypress(function(e) {
if (e.keyCode == 13 && !e.shiftKey) {
e.preventDefault();
var frm = this.form.submit();
$.ajax({
url: frm.attr(),
data: frm.serialize(),
success: {},
dataType: json
});
}
});

});

</script>

这里的问题是,当触发回车键时,表单会被提交,但它不会呈现 ajax 请求,而是通过 http 请求提交表单。如有任何帮助,谢谢

最佳答案

如果您既需要提交表单又需要发送ajax请求,则应该在ajax请求执行后提交。所以,你应该要么让ajax请求同步,要么在ajax回调函数中提交。

如果您不需要提交表单,请使用此

var frm=$(this).parent(); //if textarea tag directly in the from tag

因为此代码 this.form.submit(); 提交表单。

UPD

    $(function(){
$('textarea').keypress(function(e) {
if (e.keyCode == 13 && !e.shiftKey) {
e.preventDefault();
// var frm = this.form.submit(); <- this code submits the form immediately
var frm = $(this).parent(); // depends on form structute
$.ajax({
url: frm.attr('action'),
data: frm.serialize(),
complete: function(){
frm.submit(); // if you need to submit form after ajax request has been completed, I think it is useless
},
dataType: json
});
}
});

});

关于javascript - 在rails3.1rc5中使用enter通过ajax提交textarea中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6892603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com