想要创建一个阵型并在其上运行UJS。但是有一个问题:表单标签在输入字段之外?怎么可能?
<tr>
<td>
<input name="email_notification[secondary]" type="hidden" value="0">
<input id="email_notification_secondary_254" name="email_notification[secondary]" type="checkbox" value="1">
</td>
</tr>
<form accept-charset="UTF-8" action="/email_notifications/255" class="edit_email_notification" id="edit_email_notification_255" method="post"></form>
所以这就是我设置表格的方法,如果我错了,请纠正我
<% @setting.email_notifications.each do |en| %>
<%= form_for en do |u| %>
<tr>
<td><%= en.notification.name %></td>
<td><%= u.check_box :primary, { :id => "email_notification_primary_" + en.id.to_s } %></td>
<td><%= u.check_box :secondary, { :id => "email_notification_secondary_" + en.id.to_s } %></td>
<td><%= u.select :interval, @days, { :id => "email_notification_secondary_" + en.id.to_s } if en.notification.required_intervals? %></td>
<td><%= u.submit %></td>
</tr>
<% end %>
<% end %>
主要问题是,当我尝试逐个元素然后键入时,没有选择任何内容,并且由于表单元素位于输入元素之外,因此可以预期。
$('.email_notification input[type=checkbox]')
更新
如果有任何改变我正在使用twitter bootstrap
表
答案 0 :(得分:1)
将表格包裹在表单元素中,如下所示:
<table>
<% @setting.email_notifications.each do |en| %>
<tr><td>
<%= form_for en do |u| %>
<table>
<tr>
<td><%= en.notification.name %></td>
<td><%= u.check_box :primary, { :id => "email_notification_primary_" + en.id.to_s } %></td>
<td><%= u.check_box :secondary, { :id => "email_notification_secondary_" + en.id.to_s } %></td>
<td><%= u.select :interval, @days, { :id => "email_notification_secondary_" + en.id.to_s } if en.notification.required_intervals? %></td>
<td><%= u.submit %></td>
</tr>
</table>
<% end %>
</td></tr>
<% end %>
</table>
您可以在 jsffidle
上看到不同的内容但只是建议:如果可能的话,建立没有表格的表单。