使用多个链接替换下拉搜索菜单以进行表单提交

时间:2014-03-02 16:53:32

标签: ruby-on-rails ruby-on-rails-4

这是我希望做的。目前我有一个用户可以选择的特征下拉列表,并且搜索某个元素是否具有该特征。他从下拉菜单中选择一个特征并点击搜索按钮。现在我正在尝试列出这些特征的链接,以便用户可以立即点击某些特征。

我将使用|分隔几个链接:

characteristic1_link | characteristic2_link | characteristic3_link

目前,我有下列搜索功能:

<%= form_for(@element, method: 'get', url: 'query') do |f| %>  
  <%= f.collection_select :characteristic_id, Characteristic.all, :id, :name, :include_blank => true %>
  <%= f.submit "Search" %>
<% end %>

我试图通过我生成的链接来做到这一点:

<% @characteristics.each do |characteristic| %>
    <%= link_to (characteristic.name), '#' %>
<% end %>

如何通过链接传递:characteristic_id参数,并在用户点击链接时以某种方式触发f.submit

修改

这似乎有效:

<% @characteristics.each do |characteristic| %>
    <%= link_to (characteristic.name), query_path(:element => {:characteristic_id => characteristic.id}) %>
<% end %>

关于这种方法的意见? :)

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,例如点击和link_to-anchor选择与anchors标签同名的选项并提交表单,那么你可能想...

<%= link_to characteristic.name, '#', class: 'trigger_select' %>

让你的JS完成剩下的工作。 (未经测试。)

$('.trigger_select').click( function() { 
    var href = $(this).attr('href');
    $('#select_field').val(href);
    $('#form').submit();
});
希望我理解你。