我想根据this findle创建一个全选复选框。我做了一个像这样的咖啡因:
$(document).on 'click','.select_all_clans', ->
if $(this).is(':checked')
$('.clan_checkbox').attr 'checked', true
但它仅在先前未选择check_box.clan_checkbox时才有效,并且仅检查一次。
这是我的表格:
<%= form_tag show_schools_path do %>
<p>
Wybierz klan/y:
Feniks: <%= check_box_tag 'clans[]','Feniks', (true if !@clans.nil? and @clans.include? 'Feniks'), class: "clan_checkbox" %>,
Jednorożec: <%= check_box_tag 'clans[]','Jednorożec', (true if !@clans.nil? and @clans.include? 'Jednorożec'), class: "clan_checkbox" %>,
Krab: <%= check_box_tag 'clans[]', 'Krab', (true if !@clans.nil? and @clans.include? 'Krab'), class: "clan_checkbox" %>,
Lew: <%= check_box_tag 'clans[]', 'Lew', (true if !@clans.nil? and @clans.include? 'Lew'), class: "clan_checkbox" %>,
Zaznacz Wszystkie: <%= check_box_tag 'select_all', 'nil', false, class: "select_all_clans" %>
</p>
<%= submit_tag "Szukaj!" %>
<% end %>
我认为这是(true if !@clans.nil? and @clans.include? 'Lew')
评估的结果。
我刚开始学习CS所以请尽可能详细解释:)
答案 0 :(得分:0)
在这里,我希望这就是你要找的东西:
boxes = $('#checkboxlist [type=checkbox]')
selectAll = $('.selectall')
toggleCheckboxes = ->
if $(this).is ':checked' then boxes.prop "checked", true else boxes.prop "checked", false
selectAll.on 'click', toggleCheckboxes
您应该将attr()
更改为prop()
。
此处没有什么特别的事情,我们刚刚toggleCheckboxes()
绑定了selectAll
元素上的点击事件。
提示:下次为此类问题添加javascript
标记时,您可以更快地获得解决方案,并且可以稍后将其转换回CS。