【问题标题】:How to make the submit button call a function?如何让提交按钮调用一个函数?
【发布时间】:2015-03-18 18:40:20
【问题描述】:
<%= form_tag('add_person', method: 'get') do %>
                <%= label_tag(:name, 'Name') %>
                <%= text_field_tag(:name) %>
                <%= submit_tag 'Add new person' %>
        <% end %>

<%= def add_person
                if params[:name] == "John")
                enter code here
                else
                enter code here               
                end
end %>

如何让提交按钮调用函数add_person?我正在使用 Ruby/Rails

【问题讨论】:

  • 为什么不使用默认更新操作?

标签: html ruby-on-rails ruby forms function


【解决方案1】:

通过提交按钮调用一个或多个方法:

form_tag 帮助器确定要调用的控制器方法:

<%= form_tag('controller/controller_method', method: 'put') do %>

submit_tag 将一个值传递给对其进行评估的控制器。

<%= submit_tag "Add Person" %>

在控制器中,您根据提交按钮传递的值进行分支:

def controller_method
  if params[:commit] == "Add Person"
    add_person
  elsif params[:commit] == "Method 2"
    method_2
  elsif params[:commit] == "Method 3"
    method_3
  end
end

通过任意按钮调用方法

您的表单底部可能有这样的内容:

  <div class="actions">
    <%= f.submit %>
  </div>

可以用button_to 助手替换,如下所示:

  <%= button_to "Submit", :method=> 'add_person' %>

您的add_person 方法必须在控制器中为您的表单所引用的对象定义。

【讨论】:

  • 而不是 f.submit(用于 form_for),我们将使用 submit_tag(用于问题中的 form_tag)。
猜你喜欢
  • 2018-12-06
  • 1970-01-01
  • 2022-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
  • 1970-01-01
  • 2011-04-20
相关资源
最近更新 更多