在选择框发生变化时,重新搜索提交表单

Ransack submit form onchange of select box

本文关键字:新搜索 搜索 表单 提交 选择 变化      更新时间:2023-09-26

使用Ransack,我有一个简单的下拉列表过滤。它工作正常,但是我需要按下提交按钮。

我想改变下拉菜单的动作来提交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不起作用

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吧

Html选项散列应该作为单独的参数传递。更多信息请访问:http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select

你可以试试:

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