2016-08-23 76 views
1

使用Ransack,我有一個簡單的下拉列表來篩選。它工作正常,但我需要按提交按鈕。Ransack提交表單onchange選擇框

我想改變下拉的作用提交search_form_for

<%= search_form_for @query do |f| %> 
    <%= f.select :category_eq, options_for_select(Article::CATEGORIES.sort.map {|k,v| [v,k]}), include_blank: true, onchange: "this.form.submit();" %> 
    <%= f.submit %> 
<% end %> 

平變化不起作用

onchange: "this.form.submit();" 

編輯

的onchange不會出現在渲染中形式

<form class="article_search" id="article_search" action="/articles" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓"> 
     <select name="q[category_eq]" id="q_category_eq"><option value=""></option> 
<option value="caffe">Caffe</option> 
<option value="data_mining">Data mining</option> 
<option value="deep_learning">Deep learning</option> 


     <input type="submit" name="commit" value="Search"> 

編輯2

它看起來像search_form_for只是傳遞選項加入到的form_for

https://github.com/activerecord-hackery/ransack/blob/26cb9e4210fd1728f266ea40095ed6093ca4a994/lib/ransack/helpers/form_helper.rb#L34

+0

HTML的外觀如何?當你改變'select'時會發生什麼?控制檯輸出顯示什麼? – coreyward

+0

更改選擇時沒有任何反應。在更新的問題中查看呈現的表單 - onchange不存在。 – ardochhigh

回答

1

HTML選項散列應作爲一個單獨的被傳遞參數。關於它在這裏的更多信息:http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select

你可以試試:

<%= f.select :category_eq, ..., { include_blank: true }, { onchange: 'this.form.submit();' } %> 

祝您好運!

+0

這樣做! '<%= f.select:category_eq,options_for_select(Article :: CATEGORIES.sort.map {| k,v | [v,k]}),{include_blank:true},{onchange:'this.form.submit );」 }%> ' – ardochhigh

+1

我很高興你解決了你的問題。 :) –