复选框选择/取消选择触发器第一次工作,但在随后的尝试中失败
Checkbox select/deselect trigger works first time but fails on subsequent attempts
我有一块jQuery,它基于html数据*标签来处理搜索表单组中的复选框。
单击"全部"复选框,其余所有复选框都将被取消选中(这每次都有效,没有问题)。
现在,如果选择了"全部",并且单击了其他选项,则"全部"应变为未选择,这也可以正常工作。
但是,如果您愿意,您可以取消选择"全部"复选框,然后默认为选中其余复选框,这样您就可以取消选择所需的结果。
如果到目前为止你还没有更改任何其他复选框,这是第一次有效,但如果选择了任何其他复选栏"全部",或者如果你已经单击了"全部"按钮,如果选择失败,则再次取消选择。
<input data-sel-group='group1' id='group1_all'/>
<input data-sel-group='group1' id='group1_1'/>
<input data-sel-group='group1' id='group1_2'/>
$('input:checkbox').on('click',function(){
var sel = $(this).data('sel-group'),
all = $('#'+sel+'_all'),
chk = all.is(':checked');
if($(this).attr('id')==all.attr('id')){
if(chk){
$('input[data-sel-group="'+sel+'"][id!="'+sel+'_all"]').attr('checked', false);
}else{
$('input[id!="'+sel+'_all"][data-sel-group="'+sel+'"]').attr('checked', true);
}
}else{
all.attr('checked', false);
if($('input[data-sel-group="'+sel+'"]:checked').length<=0){
all.attr('checked', true);
}
}
})
使用.prop()
而不是.attr()
$(selector).prop('checked', true/false);
还可以查看.pr()与.attr()
您应该在设置checkbox属性为checked时使用延迟执行。请参阅此博客
相关文章:
- 在我的情况下,使用带有变量失败的 jquery 选择器
- Jquery选择菜单选项在页面刷新时失败
- 由于adblock,Javascript Ajax请求在chrome中失败,我有什么选择
- Jquery 悬停函数在将鼠标悬停在选择框上时会失败
- 复选框选择/取消选择触发器第一次工作,但在随后的尝试中失败
- 使用 jquery 填充选择选项失败
- 为什么这个jQuery颜色选择器在引导模式中失败
- IE7 jquery 选择器返回“失败”
- 在我的情况下,任何使用 * 的选择器都失败了
- 为什么这个选择菜单在jQuery和JQM的新版本组合中失败
- 警告:失败的 propType:在“维度选取器”中未指定所需的属性“维度名称”.检查“连接(维度选择器)”的渲染方法
- 表单选择 GT 9 时脚本失败
- 谷歌数据存储查询中的多项选择抛出 API 错误:前提条件节点中失败错误
- 选择菜单项重置为默认值失败
- 当选择包含*时,使用ADO到Oracle服务器的查询失败未指定错误
- .id()方法在jQuery选择器上失败
- 为什么JQuery NOT选择器在类型提交时失败,但在类型按钮上有效
- 如果一个页面或网站已经有一个版本的Jquery chrome扩展失败.我想Jquery选择脚本
- Ng-repeat适用于<
- < light >等,但在选择完全相同的源时失败
- 动态选择选项在灯箱中失败