2

我正在尝试使用两个不同的提交按钮创建一个简单的表单:一个将执行普通提交,一个将执行 ajax 提交并呈现部分。但我不确定如何做到这一点,因为两者都朝着相同的创建操作方向发展。我试过这样的事情:

/views/layouts/_form.html.erb:

<div id="theform">
<%= form_for(@user, :remote => true, :form_to_validate => 'user') do |f| %>

    Name: <div id='name'><%= f.text_field :name %></div><br/>
    Email: <div id='email'><%= f.text_field :email %></div><br/>
    Phone Number: <div id='phone_number'><%= f.text_field :phone_number%></div><br/>
    <%= f.submit "Normal Submit", name:'normal' %>
    <%= f.submit "Ajax Submit" %>

<% end %>
</div>

应用程序/控制器/user_controller.rb:

class UsersController < ApplicationController

def new
    @user = User.new
end

def create
    @user = User.new(params[:user])
    if params[:normal]
        render :partial => "layouts/user"
    end
end

编辑:这似乎是一项奇怪的任务,但这是给我的一项任务,以证明我可以同时做到这一点。我知道如何分别进行 AJAX 提交和正常提交,但我的困惑是表单中有两个提交!:)

4

2 回答 2

1

为什么不编写一些侦听单击或提交的 JS,如果它的 ajax $.ajax 到 ajax 位置,则在 JS 中路由它,否则让它正常通过,如果不是,不要停止传播。

于 2012-06-22T16:01:34.403 回答
0

我认为您不需要两个提交按钮。让 ajax 按钮只需调用 $.ajax 方法并发送您的数据。

或者,您可以$('#formid').submit()在将表单转换为 ajax 之后调用 ajax 按钮,使用您使用的任何方法。这可能是两种方法中更容易的一种。

于 2012-06-22T15:45:27.010 回答