【问题标题】:Rails form_tag in <tr></tr> tag<tr></tr> 标签中的 Rails form_tag
【发布时间】:2014-06-18 14:52:38
【问题描述】:

我的表格最后一行有一个 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


    【解决方案1】:

    你不能这样做。

    你的表单标签不能在那里存在,穿插在表格的标记中。它必须进入&lt;td&gt;。您正在生成无效标记,而浏览器正在尽其所能解释它。

    您应该使用带有&lt;p&gt; 标记的第二个选项,或者重新考虑让表单跨越多个表格单元格的需要,或者将整个 表格包装在单个&lt;form&gt; 中。

    【讨论】:

    • 谢谢!我终于在我的 中包装了一个 。这是一个好的实践标记吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 2013-05-01
    • 2019-08-11
    相关资源
    最近更新 更多