我试图在tr
元素中放置一个表单,如下所示
<%= form_for @meal, html: { class: 'form-inline' }, remote: true do |f| %>
<td class="form-group"><%= f.text_field :name, class: 'form-control', placeholder: 'Meal' %></td>
<td class="form-group"><%= f.text_field :calories, class: 'form-control', placeholder: 'Calories' %></td>
<td class="form-group"><%= f.text_field :meal_time_text, class: 'form-control time-picker', placeholder: 'Time' %></td>
<td class="form-group"><%= f.text_field :meal_date_text, class: 'form-control date-picker', placeholder: 'Date' %></td>
<td>
<%= f.submit nil, class: 'btn btn-primary btn-xs' %>
<%= link_to t('.cancel', default: t("helpers.links.cancel")),
meals_path, class: 'btn btn-default btn-xs' %>
</td>
<% end %>
但是当我检查元素时,我会看到这个
<form accept-charset="UTF-8" action="/meals" class="form-inline" data-remote="true" id="new_meal" method="post"></form>
<td class="form-group"><input class="form-control" id="meal_name" name="meal[name]" placeholder="Meal" type="text"></td>
.... (rest of the td's)
我不明白这里发生了什么,我该如何解决这个问题?
答案 0 :(得分:1)
如果您查看tr
元素,只有th和td元素可以是tr 的直接内容,并且在您的代码中,您将表单作为tr的直接内容
答案 1 :(得分:0)
从技术上讲,这是一个糟糕的html dom结构,整个表单可以包含在单个td
中,或者整个表必须包含在form
中。
<form>
<table>
<tr>
<td>
<input type="text" name="first_name">
</td>
<td>
<input type="text" name="last_name">
</td>
</tr>
</table>
</form>
<table>
<tr>
<td>
<form>
<input type="text" name="first_name">
<input type="text" name="last_name">
</form>
</td>
</tr>
</table>