我正在尝试在form_for中添加一个复选框,以应用全选/取消全选,这将更新collection_check_boxes的复选框。
目前,我有以下几种(修身款式):
=tb_form_for [:admin, @logo do |f|
= f.tb_select :region_id, options_from_collection_for_select(holder, :id, :name, @logo.region_id), multiple: true, prompt: 'Select One'
= f.collection_check_boxes :region_id, Region.all, :id, :name, class: 'something'
= f.tb_save_buttons('Logo', admin_logos_path)
由于某种原因,我无法弄清楚是否将愚蠢的check_box放入“全选”,就好像我放了f.tb_check_box一样,我得到的参数数目也不正确(给定0,期望值为1..2)。那是问题之一。另一个问题是实际上要击中collection_check_boxes上显示的所有区域。
我实际上想说要拧紧它,并在默认情况下执行以下操作:
= f.collection_check_boxes :region_id, Region.all, :id, :name do |s|
.collection-check-box
= s.check_box(checked: true)
= s.label
导致的结果:发生意外错误:错误的请求,特别是:Rack :: QueryParser :: ParameterTypeError(参数“ region_id”的预期数组(字符串))。
那么我如何添加一个将全选应用到collection_check_box上的复选框?
答案 0 :(得分:0)
在页面上的任意位置添加一个复选框
= check_box_tag "", nil, nil, class: "selectall-checkbox"
和一些Javascript
$(".selectall-checkbox").change(function(){
$(".your-checkbox-class").prop('checked', $(this).is(":checked"))
})