好吧,我已经很接近了,但我需要一些帮助来克服困难。我正在尝试通过 AJAX 在 Rails 应用程序中提交表单,该应用程序发送电子邮件,然后在成功时执行一些代码。当我在表单上按 Enter 时,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 %>