我正在尝试使用两个不同的提交按钮创建一个简单的表单:一个将执行正常提交,另一个将执行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提交和正常提交,但我的困惑是在表单中有两个提交! :)
答案 0 :(得分:1)
为什么不编写一些侦听点击或提交的JS,如果它的ajax $ .ajax到ajax位置,则将其路由到JS中,否则让它正常通过,如果它不是并且不停止传播。
答案 1 :(得分:0)
我认为你不需要两个提交按钮。让ajax按钮只需调用$ .ajax方法并发送数据。
或者,在将表单转换为ajax后,您可以使用ajax按钮调用$('#formid').submit()
,使用您使用的任何方法。这可能是两种方法中比较容易的。