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

标签 jquery ruby-on-rails ajax

好吧,我已经很接近了,但我需要一些帮助来克服困难。我正在尝试在 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/

相关文章:

ruby-on-rails - 在 rake db :schema:dump? 中包含多个 postgres 模式

php - 从php页面ajax调用php函数

ajax - Angular/RxJS 我应该取消订阅每个 ajax 调用吗?

jquery - IE7 图像填充

javascript - 动态 Facebook 分享按钮

ruby-on-rails - belongs_to 关联栏中的组函数

Javascript从ajax函数传递变量

php - ajax发送文件和变量到php

javascript - 如何按顺序运行多个函数,并在其中任何一个函数失败时停止所有函数?

ruby-on-rails - rails : I can't call a function in a module in/lib - what am I doing wrong?