4

我有一个表单,它总是将表单提交给控制器中的“更新”功能,我使用“remote_form_for”标签创建了这个表单。在这个表单中,我有来自不同表的对象,并且从这个表单我想通过 AJAX 请求将整个表单数据提交给另一个函数(而不是“更新”函数)。

我尝试了很多方法,包括将提交标签与操作一起使用

<% remote_form_for @employee, :url => organization_employee_path(@organization, @employee), :method => :put do |employee_form| %>
  // form objects and other functionalities
     ....
     ....  
         // views inside the forms
         <div id="employee_header_div">
           <%= render :partial => "employee_header", :locals => {:employee => @employee} %>
         </div>
         ...
         ... 
     <%= submit_tag "page_level_validation", :id => "page_level_validation" , :action=>"validate"%>
 <% end %>

但是 Ajax 请求总是调用相同的“更新”函数。

如果有人帮助解决此问题,那将非常有帮助。

4

2 回答 2

0

您不能将提交设置为指向与主表单指定的位置不同的位置(除非您想使用 HTML5 formaction 属性并处理浏览器兼容性后果)。

但是,您可以做的是在您的控制器中创建一个新的操作来处理这种情况。

例如。

<% remote_form_for @employee, :url => organization_employee_validate_path(@organization, @employee), :method => :put do |employee_form| %>

在你的控制器中

def validate
    #do something loosely based around the update method
end

不要忘记添加适当的路线。

于 2016-06-02T11:34:41.203 回答
-1

尝试这个:

<% form_for @employee, :remote => true, :url => organization_employee_path(@organization, @employee), :method => :put do |employee_form| %>
于 2010-12-02T03:04:03.383 回答