Ruby on Rails:表单中的第二个按钮不会将表单字段提交给params

时间:2014-10-15 13:16:38

标签: html ruby-on-rails-3

我的rails 3 form_tag上的ruby有问题。过去工作得很好。现在我意识到我需要第二个提交按钮(名为"选择标准")。按钮工作正常,调用正确的控制器方法等。由于某种原因,虽然表单的输入不会传递给params []哈希。有什么想法吗?

下面的示例(以前用于工作)和第二个按钮:

<fieldset>
    <legend> Select energies for evaluation </legend>
<%= form_tag ge_insert_energies_url(:id => @m.id) do %>
 <p>
     <table border = "solid">
     <tr>
        <th> Isotope </th>
        <th> Energy [keV]</th>
     </tr>
         <% @isos.each_with_index do |iso,i| %>
            <% unless @glines[i]=="blank" %>
                 <% @glines[i].each do |line| %>
                     <tr>
                         <% if line == @glines[i].first %>
                             <td rowspan="<%=@glines[i].count%>"> <%= iso.isotope %></td>
                         <% end %>
                         <td> <%= line.energy %> </td>
                         <td><%=check_box_tag "energies[select][]",line.id,@data.in    clude?(line.id)%>
                     </tr>
                 <% end %>
             <% end %>
         <% end %>
     </table>
 </p>

 <p><div style = "float:left; width:auto"> 
     <%= button_to "Submit", ge_insert_energies_url(:id => @m.id), :confirm => "Are     you sure? Data from deselected lines will be deleted." %></div>
     <%= button_to "Select Standard", ge_insert_energies_url(:id=>@m.id, :standard     => true) , :confirm => "Are you sure? Data from deselected lines will be deleted."%>
 </p>
 <% end %>


</fieldset>

1 个答案:

答案 0 :(得分:0)

注意:   - 如果您使用的是form_tag,则提交内容应由submit_tag启动,而不是由button_to启动,因此我建议将操作部分保留在form_tag中,而不是在submit_tag / button_to中。 < / p>

我在这里发布您的问题的解决方案(为简单起见,我刚刚保留了2个字段):

<%= form_tag hold_value_visits_path(id: @visit.id) do %>

    <div>
        <%= label_tag 'first Name' %>
        <%= text_field_tag  :first_name %>
    </div>

    <div>
        <%= label_tag 'last Name' %>
        <%= text_field_tag :last_name %>
    </div>

    <div> 
         <%= hidden_field_tag :standard, false %>
    </div>

     <p>
        <%= submit_tag 'Submit', id: 'simple_submit %>
        <%= submit_tag "Second Submit', id: 'second_submit'  %>
     </p>

 <% end %>

在第二次提交时,您希望将标准值传递为TRUE。 检查我添加的hidden_​​field,其默认值为false。

//on click of the second_submit you want it to be true. 
    $('#second_submit').on('cick', function(){
       $('#standard_hidden').val(true);
    });