我可以在表单内嵌套表单标签吗?

时间:2019-02-25 11:38:13

标签: ruby-on-rails ruby forms

由于HTML流,我不得不将form标签嵌套在form中,但无法完成。有其他选择吗?

                <tr class="first last">
                  <td class="a-right last" colspan="50"><button onclick="setLocation('#')" class="button btn-continue" title="Continue Shopping" type="button"><span>Continue Shopping</span></button>
                    <%= button_tag class: 'button btn-update', id: 'update-button' do %>
                      <%= Spree.t(:update) %>
                    <% end %>
                    <%= form_tag empty_cart_path, method: :put do %>
                      <%= submit_tag Spree.t(:empty_cart), class: 'button btn-empty' %>
                    <% end %>
                  </td>
                </tr>
                </tfoot>

          <%= form_for @order, url: update_cart_path, html: { id: 'update-cart' } do |order_form| %>

            <%= render partial: 'form', locals: { order_form: order_form } %>
          <% end %>
        <% end %>

button_tag应该在form_for表单内,但是如果我这样设置:

                <td class="a-right last" colspan="50"><button onclick="setLocation('#')" class="button btn-continue" title="Continue Shopping" type="button"><span>Continue Shopping</span></button>
                    <%= form_for @order, url: update_cart_path, html: { id: 'update-cart' } do |order_form| %>
                    <%= button_tag class: 'button btn-update', id: 'update-button' do %>
                      <%= Spree.t(:update) %>
                    <% end %>
                    <%= form_tag empty_cart_path, method: :put do %>
                      <%= submit_tag Spree.t(:empty_cart), class: 'button btn-empty' %>
                    <% end %>
                  </td>
                </tr>
                </tfoot>


            <%= render partial: 'form', locals: { order_form: order_form } %>
          <% end %>
        <% end %>

它不起作用

2 个答案:

答案 0 :(得分:1)

  

我可以在表单中嵌套表单标签吗?

您不能嵌套表单标签。

这是错误的。这是不对的,因为它是错误的。大多数浏览器只会看到一种形式。

https://www.w3.org/TR/html5/forms.html#the-form-element

  

内容模型:   流内容,但没有表单元素后代

答案 1 :(得分:1)

如果我是对的,您希望将empty_cart按钮与更新按钮对齐。在Rails中,您可以创建一个进行更新或发布或任何您喜欢的链接。您可以执行以下操作:

<%= link_to Spree.t(:empty_cart(_method: 'put')), empty_cart_path, class: 'button btn-empty', method: :post %>