我正在尝试在我的ror应用程序中添加select / deselect all复选框(我尝试单击select all并删除我表中的所有记录)。如果单击全选复选框,则不会选中表中的所有复选框,同时也不会调用delete方法。
这是我的Controller文件:
def destroy
@messages = Message.where(id: params[:message_ids])
@messages.destroy_all
respond_to do |format|
format.html { redirect_to messages_url, notice: 'Message was successfully destroyed.' }
format.json { head :no_content }
end
end
我在index.html.erb文件中使用jquery代码。这是:
<p id="notice"><%= notice %></p>
<h1>Messages</h1>
<table>
<thead>
<tr>
<th ><%= check_box_tag "message_ids[]",class: 'selectall' %></th>
<th>Content</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<%= form_tag messages_path, method: :delete do %>
<% @messages.each do |message| %>
<tr>
<td><%= check_box_tag "message_ids[]", message.id%></td>
<td><%= message.content %></td>
<td><%= link_to 'Show', message %></td>
<td class="edititem"><%= link_to 'Edit', edit_message_path(message)%></td>
</tr>
<% end %>
</tbody>
</table>
<br>
<%= submit_tag :Delete,class: 'btn' %>
</br>
<% end %>
<br>
<%= link_to 'New Message', new_message_path %>
</br>
<script>
$('#selectall').click(function(event) {
if (this.message_ids) {
$(':checkbox').attr('message_ids', true);
} else {
$(':checkbox').attr('message_ids', false);
}
});
</script>
我是初学者,请帮助我解决我的问题......
答案 0 :(得分:0)
尝试类似
的内容$(".selectall").click(function () {
$('#my-table tbody input[type="checkbox"]').prop('checked', this.checked);
});
答案 1 :(得分:0)
$('.selectall').toggle(function(){
$('#my-table tbody input[type="checkbox"]').attr('checked','checked');
},function(){
$('#my-table tbody input[type="checkbox"]').removeAttr('checked');
});
答案 2 :(得分:0)
1 =&GT;提供一个id(null
),点击后触发所有复选框。
2 =&GT;在所有邮件复选框上提供一个公共类,该邮件将在点击id: 'select_all_messages'
like =&gt;
id: select_all_messages