首页 > 解决方案 > 我可以在表单内嵌套表单标签吗?

问题描述

我有一种情况,由于 HTML 流,我必须在表单内嵌套表单标签,但无法完成。有没有其他选择?

                <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 %>

它不工作

标签: ruby-on-railsrubyforms

解决方案


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

您不能嵌套表单标签。

这是错误的。它不会起作用,因为它是错误的。大多数浏览器只会看到一种表单。

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

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


推荐阅读