在多个复选框中选中全部或取消选中全部
Check all or uncheck all in multi checkbox
我有这个代码的多复选框
HTML:<fieldset data-role="collapsible">
<legend>Pick one</legend>
<div data-role="controlgroup" id="ZIBI" align="right" >
</div>
</fieldset>
jQuery/JavaScript: myArray1 = new Array(
"1","2","3","4","5","6"
);
$("#ZIBI").html('');
for (var i = 0; i < myArray1.length; i++) {
row = myArray1[i];
$("#ZIBI").append(
'<label for=' + row + '>' + row + '</label>' +
'<input type="checkbox" name="favcolor" id=' + row + ' value=' + row + '>');
}
$('#ZIBI').trigger('create');
如何通过按任意按钮来选中所有或取消选中所有?
谢谢
在这个JsFiddle中,您将找到一个方法来选中/取消选中给定div中的所有复选框,使用id为_main
:
function checkAll(e){
e = e || event;
var from = e.target || e.srcElement
,cbs = this.querySelectorAll('input'), i=1;
if (/^_main$/i.test(from.id)){
for (;i<cbs.length;i+=1){
cbs[i].checked = from.checked;
}
} else {
var main = document.querySelector('#_main')
,j = cbs.length;
for (;i<cbs.length;i+=1){
j -= cbs[i].checked ? 0 : 1;
}
main.checked = j === cbs.length ? true : false;
}
}
更新
新元素应添加到$(".selector").controlgroup("container")
中,而不是直接添加到$(".selector")
中。如果你将它们添加到主div中,元素将不会被样式化为_controlgroup '。
您需要刷新 .checkboxradio("refresh")
复选框或单选来应用jQM样式。另一点,.trigger("create")
在jQM 1.4中被弃用,取而代之的是.enhanceWithin()
。
myArray1 = new Array(
"1", "2", "3", "4", "5", "6");
/* remove previous elements */
$("#ZIBI").controlgroup("container").html('');
for (var i = 0; i < myArray1.length; i++) {
row = myArray1[i];
/* add new ones to container */
$("#ZIBI").controlgroup("container").append(
'<label for=' + row + '>' + row + '</label>' +
'<input type="checkbox" name="favcolor" id=' + row + ' value=' + row + '>');
}
/* refresh controlgroup and enhance elements within */
$("#ZIBI").controlgroup().enhanceWithin();
/* check/uncheck on button click */
$("#foo").on("click", function () {
var status = $("#ZIBI [type=checkbox]").eq(0).prop("checked") ? false : true;
$("#ZIBI [type=checkbox]").prop("checked", status).checkboxradio("refresh");
});
你可以试试:
HTML:<fieldset data-role="collapsible">
<legend>Pick one</legend>
<div data-role="controlgroup" id="ZIBI" align="right" >
</div>
</fieldset>
<input type="checkbox" id="all" value="Toggle" />
jQuery: $('#all').on('click', function() {
if(this.checked) {
$('#ZIBI').find('input[type=checkbox]').prop('checked', true);
} else {
$('#ZIBI').find('input[type=checkbox]').prop('checked', false);
}
});
工作小提琴。
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- jquery点击函数select&取消选择
- 如果未全部选中子节点,则取消选中父节点
- 如何在JQuery中取消文档中的一些点击事件(并非全部)
- 取消选择全部'不适用于Bootstrap选择
- 选中全部复选框应取消选中
- 树视图,选中全部或取消选中全部在挖空.js
- 按id选择页面中的全部/取消选择所有复选框
- 在多个复选框中选中全部或取消选中全部
- 选择/取消选择全部对单个记录不起作用
- 在选中“全部”时,如何取消选中相关复选框?复选框并取消选择“全部”;复选框中的复选框
- 自动选中/取消选中“全部”;复选框
- 将选择/取消选择全部添加到动态表格表单
- 对"全部选中/取消选中"上的每个复选框调用jQuery函数
- 全部选中/除限制行外全部取消选中以进行检查
- 将选中/取消选中全部限制为当前页面
- 复选框全部选中/取消选中所有(快速帮助)
- 嵌套的“全部检查”和“取消选中所有”模型应使用 angularjs 反映在 JSON 中
- 选择多重选择-取消选择全部"选项,反之亦然
- 如果选项“全部”,则无法取消多选的所有选项.被选中