Rails form_tag in <tr><tr> tag

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

我的表的最后一行有一个form_tag。

<tr>
  <%= form_tag(emails_path, method: :post) do %>
    <td><%= text_field_tag 'email', nil, class: "form-control" %></td>
    <td><%= submit_tag "add", class: "btn btn-small btn-success" %></td>
  <% end %>
</tr>

其结果如下

<tr>
  <form accept-charset="UTF-8" action="/emails" method="post"></form> <!-- Close here -->
  <td><input class="form-control" id="email" name="email" type="text"></td>
  <td><input class="btn btn-small btn-success" name="commit" type="submit" value="add"></td>
</tr>

"添加 "按钮不能用,因为表单标签没有把我的输入控件包在里面。

但是当我尝试从表格中取出表单时,就像这样

  <%= form_tag(emails_path, method: :post) do %>
    <p><%= text_field_tag 'email', nil, class: "form-control" %></p>
    <p><%= submit_tag "add", class: "btn btn-small btn-success" %></p>
  <% end %>

表单渲染正确,"添加 "按钮有效。

我怎么才能做到呢?我记得以前是可以的......。

ruby-on-rails erb
2个回答
6
投票

你不能这样做。

你的表单标签不能存在于那里,与表格的标记交织在一起。它必须放在一个 <td>. 你正在产生无效的标记,而浏览器正在尽力解释它。

你应该使用第二个选项,用 <p> 标签,或者重新考虑让表单跨越多个表格单元格的需求,或者将表单中的 全部 单独 <form>.

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