gpt4 book ai didi

jquery - 使用jquery、ajax提交表单,无法获取成功回调

转载 作者:行者123 更新时间:2023-12-01 04:13:37 24 4
gpt4 key购买 nike

好吧,我已经很接近了,但我需要一些帮助来克服困难。我正在尝试在 Rails 应用程序中通过 AJAX 提交表单,该应用程序会发送电子邮件,然后在成功时执行一些代码。当我在表单上按回车键时,AJAX 正在运行,因为我正在收到电子邮件。但是,成功代码没有运行(也没有错误)。我也尝试过“完整:”,但这不起作用,所以我怀疑默认表单行为可能存在问题?有想法吗?

这里是ajax:

// AJAX Function to submit email form without refreshing page
$("#contact_me").submit(function(){
var dataSet = $(this).serialize();
$.ajax({
type: "POST",
url: $(this).attr("action"),
data: dataSet,
success: function(){
alert("Sent!");
},
error: function(){
alert("Something went wrong!");
}
});

return false;
})

以及它调用的 Rails 操作:

def email_me
name = params[:name]
email = params[:email]
content = params[:text]

ContactMailer.first_contact(name, email, content).deliver

head :ok
end

此外,表单本身

<%= form_tag({controller: "main", action: "email_me"}, id: "contact_me", remote: "true") do %>
<div>
<p><%= label_tag(:name, "Name") %>
<%= text_field_tag(:name) %></p>
</div>
<div>
<p><%= label_tag(:email, "Email") %>
<%= email_field(:user, :email) %></p>
</div>
<div>
<p><%= label_tag(:text, "What's on your mind?") %></p>
<%= text_area_tag(:text)%>
</div>

<%= submit_tag("Say Hello!")%>
<% end %>

最佳答案

确实是小事情最终导致了最大的问题。我忘记将整个函数包装在 function(){..} 中。想想看,现在效果很好。感谢大家的帮助。

$(function(){
$("#contact_me").submit(function(){
var dataSet = $(this).serialize();
$.ajax({
type: "POST",
url: $(this).attr("action"),
data: dataSet,
complete: function(){
alert("Sent!");
},
error: function(){
alert("Something went wrong!");
}
});
return false;
});
})

关于jquery - 使用jquery、ajax提交表单,无法获取成功回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17239698/

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