我的表格的最后一行有一个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 %>
表单正确呈现,“添加”按钮有效。
我该怎么办?我记得曾经工作过....
答案 0 :(得分:6)
你不能这样做。
您的表单标记不能存在,插入表的标记。它必须进入<td>
。您正在生成无效标记,浏览器会尽可能地解释它。
您应该使用带有<p>
标记的第二个选项,或者重新考虑是否需要让表单跨多个表格单元格,或者将整个表格包装在一个<form>
中}。