如何在rails中不点击提交update表单?

问题描述 投票:2回答:1

产生了一个 recruitment 型号,具有 one_to_many 属于 attendance 现在我想在用户改变考勤下拉菜单时提交更新表单。

  <table>
    <thead>
      <tr>
        <th>Name</th>

        <% (1..(Time.days_in_month Time.now.strftime("%m").to_i)).each do |date| %>
              <th><%= date %></th>
        <% end %>

      </tr>
    </thead>

    <tbody>
      <% @recruitment.each do |recruitment| %>
        <tr>
            <td><%= recruitment.name %></td>

            <% (1..(Time.days_in_month Time.now.strftime("%m").to_i)).each do |date| %>
                  <td>


                    <%= form_for Attendance.new do |f| %>
                        <div>
                          <div class="wrapper-class">
                              <%= f.select :status, [['P', 1], ['A', 2], ['H', 3]]%>
                          </div>

                          <div>
                            <%= f.hidden_field :attendance_date, value: (Time.now.strftime("%Y").to_s+"-"+Time.now.strftime("%m").to_s+"-"+date.to_s)%>
                          </div>

                            <%=f.hidden_field :recruitment_id, value: recruitment.id%>
                          </div>
                          <div>
                            <%= f.submit 'Submit', :class => 'button primary small float-right' %>
                          </div>

                    <% end %>
                  </td>
            <% end %>

我不想点击 submit 每当我改变输入选择的时候,就会打开。

我试过这样

  <%= f.select :status, [['P', 1], ['A', 2], ['H', 3]], :onchange => 'this.form.submit()' %>

但这是行不通的。

ruby-on-rails ruby-on-rails-5
1个回答
1
投票

我怀疑如果你检查这个生成的HTML代码,你不会看到一个 onchange 属性的选择字段。

像这样enter image description here

select 方法期望得到的哈希值是 options 未到 html_options,所以为了解决这个问题,我们做

<%= f.select :status, [['P', 1], ['A', 2], ['H', 3]], {}, :onchange => 'this.form.submit()' %>

如果你需要指定其他的HTML选项,如类或样式,你可以这样做。

<%= f.select :status, [['P', 1], ['A', 2], ['H', 3]], {}, { onchange: 'this.form.submit()', class: 'some-css-class' } %>

请注意周围的大括号 onchangeclass 属性。

相关文档。https:/apidock.comrailsActionViewHelpersFormOptionsHelperselect。

© www.soinside.com 2019 - 2024. All rights reserved.