关于js复选框带条件去设置选不中的问题:
我在做的条件:多选的框是icheckbox_square-blue,假设“调息启动”这个字段值为“是”,也就是adjrtbegin=‘1’,那么它前面的□就不会显示出来:
接下来我的js代码是这样:这个达到的效果就是,当我点击最上面的那个全选框,调息启动那个字段为是的就无法选中,我如果要进行删除操作的话,只能删除调息启动为否的数据。但是出现的问题就是,我不点最上面那个全选框,我直接去选择一条调息启动字段为是的数据就能选中进行删除操作。
let list = $('.tbscrollbar').find('tbody').find('tr');
let result = list.filter((i,item) => {
if($(item).find('td[name=adjrtbegin]').text()== '1'){
$(item).find('td').eq(0).find('div').removeClass('checked');
$(item).find('td').eq(0).find(".icheckbox_square-blue").css("display","none");
$(item).find('td').css("background-color","#ffffff");
/*这个是最上面的全选框,点击以后,所有调息启动为是的都选不中
但是有个弊端,不点最上面的,直接去点其中一条调息启动为是的数据就能选中 */
$('.tbhead .iCheck-helper').click(function(){
$(item).find('td').iCheck('uncheck');
})
}
})
接下来我又尝试了这样去写:达到的效果是,我如果单独点击调息启动字段为是的一条数据,就选不中,也不能进行删除操作。但是我要是点最上面那个全选框,就能选中所有数据,包括了调息启动为是的数据,所有数据都能进行删除操作。
let list = $('.tbscrollbar').find('tbody').find('tr');
let result = list.filter((i,item) => {
if($(item).find('td[name=adjrtbegin]').text()== '1'){
$(item).find('td').eq(0).find('div').removeClass('checked');
$(item).find('td').eq(0).find(".icheckbox_square-blue").css("display","none");
$(item).find('td').css("background-color","#ffffff");
/*这个是直接找到那一行数据*/
$(item).click(function(){
$(item).find('td').iCheck('uncheck');
})
}
})
这个问题怎么解决呢,我还在测试中,希望大家给个修改意见
来源:https://blog.csdn.net/qq_36748559/article/details/98956354