Ruby on rails 如何在select下拉菜单(从DB填充)上发生onchange时自动提交Rails formhelper

Ruby on rails 如何在select下拉菜单(从DB填充)上发生onchange时自动提交Rails formhelper,ruby-on-rails,formhelper,Ruby On Rails,Formhelper,我的视图中有一个表单,有两个下拉列表,都是从db表中填充的,当其中一个下拉列表上发生onchange事件时,我希望自动提交表单: <%= form_for @products, url: products_path, method: :get do |f| %> <!-- POPULATE DROPDOWNS FROM DB DATA --> <%= select('post', 'state', @suppliers.collect {|s| [s.sup

我的视图中有一个表单,有两个下拉列表,都是从db表中填充的,当其中一个下拉列表上发生onchange事件时,我希望自动提交表单:

<%= form_for @products, url: products_path, method: :get do |f| %>
  <!-- POPULATE DROPDOWNS FROM DB DATA -->
  <%= select('post', 'state', @suppliers.collect {|s| [s.supp_state, s.id]}) %>
  <%= select('post', 'category_id', @categories.collect {|c| [c.cat_name, c.id]}) %>
  <div class='actions inline'><%= f.submit 'GO!' %></div>
<% end %>
我尝试了以下的变体,但我对Ruby/Rails/JS还是比较陌生的。。目前没有运气:

<%= select('post', 'state', @suppliers.collect {|s| [s.supp_state, s.id]}, :onchange => "this.form.submit()") %>

<%= select('post', 'state', @suppliers.collect {|s| [s.supp_state, s.id]}, :input_html => {:onchange => "this.form.submit()") %>
非常感谢您的建议

参见文档:

论点如下:

select(object, method, choices, options = {}, html_options = {})
:onchange属于html选项,因此您需要将选择框修复为:

select('post', 'state', @suppliers.collect {|s| [s.supp_state, s.id]}, :onchange => "this.form.submit()")

谢谢,但它不喜欢我在Rails 4中的“零”。我在产品中得到了:NoMethodError。代码行中nil:NilClass的未定义方法“delete”。我修正了答案,不包含零。我希望这样做是正确的。我想这就是我所拥有的。没有错误,但更改时不会自动提交。必须单击“提交”按钮。然后启动您的chrome或任何浏览器,查看生成的HTML是否正确。您也可以尝试一个更简单的事件,如alerthello,看看它是否有效。