select_tag触发控制器中的另一个动作?

时间:2012-05-22 07:22:43

标签: ruby-on-rails

可以通过按Submit按钮或选择select_tag中的项目来提交表单:

<% form_tag url_for(:action => 'create') do %>

  <%= select_tag :names, options_from_collection_for_select(@name_list, :id, :name, @name), 
     { :onchange => "this.form.submit();" } %> 

  <%= submit_tag 'Submit' %>

<% end %>

是否可以在create中调用另一个控制器操作(this.form.submit();除外)?

我想在不同的操作中处理不同的提交,而不是:

if params[:commit] == 'Submit'
  # from submit
else
  # from select_tag
end

在同一个控制器动作中。

1 个答案:

答案 0 :(得分:1)

在jQuery中你可以尝试类似的东西:

:onchange => "$.post(<alternative_url>, $(this).form.serialize()); return false;"

[我的早期回应(未回答问题)] 如何在提交之前使用js设置提交输入值?

jQuery的:

:onchange => "$(this).form.find('input[name="commit"]').val('select'); $(this).form.submit();" 

普通JS:

:onchange => "document.getElementById(<SubmitButtonId>).value = 'select'; this.form.submit;"