ruby-on-rails - rails : Change form action from submit_tag

标签 ruby-on-rails ajax action remote-forms

我有一个表单,它总是将表单提交给 Controller 中的“更新”功能,我使用“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 请求总是调用相同的“更新”函数。

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

最佳答案

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

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

例如..

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

在你的 Controller 中
def validate
    #do something loosely based around the update method
end

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

关于ruby-on-rails - rails : Change form action from submit_tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4263848/

相关文章:

ajax - Google 如何处理相对_escaped_fragment_ URL-s?

swift - 将多个 UIButton 链接到单个 IBAction 时,如何更改连续 UIButton 中的默认值 'sent event'?

ruby-on-rails - 在服务中返回错误对象的错误处理

ruby-on-rails - React Router 4 触发整页重新加载

ruby-on-rails - 将现有的 Rails 应用程序部署到 AWS Elastic Beanstalk

ruby-on-rails - 使用 Postman 使用 Devise API 测试 Rails

javascript - 页面加载后执行jquery ajax

javascript - 当我使用 ajax 加载链接时,在 href 上返回 false onclick 仍然会调用该链接

c# - 如何使用类拦截委托(delegate)调用

Android - 无法在浏览器中打开 URL