Jquery Can';t禁用复选框

Jquery Can';t禁用复选框,jquery,checkbox,Jquery,Checkbox,我正在尝试编写一个代码,如果前面的复选框未选中,则该代码将禁用复选框。当我删除上一个复选框时,它无法删除下一个复选框。如果我删除它,它将自动禁用,但如果我不删除它,它将工作,并保存帖子数据。我怎样才能删除它 下面是我正在做的(): $(文档).ready(函数(){ $('.check').attr('disabled',true); var id=$(“.check[id]”).map(函数(){ 返回此.id; }).get(); var数=0; var all=ids.sort(); 最

我正在尝试编写一个代码,如果前面的复选框未选中,则该代码将禁用复选框。当我删除上一个复选框时,它无法删除下一个复选框。如果我删除它,它将自动禁用,但如果我不删除它,它将工作,并保存帖子数据。我怎样才能删除它

下面是我正在做的():

$(文档).ready(函数(){
$('.check').attr('disabled',true);
var id=$(“.check[id]”).map(函数(){
返回此.id;
}).get();
var数=0;
var all=ids.sort();
最低风险值=所有[数量];
$(“#”+最低).attr('disabled',false);
$('.check').change(函数(){
如果($('#'+all[number])是(':checked')){
数字=数字+1;
$('#'+all[number]).attr('disabled',false);
}否则{
$(“#”+all[number]).prop('checked',false);//这里没有做任何事情,我不知道为什么。
$(“#”+所有[number]).prop('disabled',true);
数字=数字-1
}
});
});

在回答了一些问题后,我想到了以下几点:

$(文档).ready(函数(){
$('.check').prop('disabled',true);//在执行之前禁用所有复选框
var id=$('.check[id]').map(function(){//创建id的排序数组
返回此.id;
}).get().sort();
var number=0;//第一个元素,也是最低的元素
var lowest=ids[number];//最低,保留它只是为了看起来像您的代码
$('#'+最低).prop('disabled',false);//启用第一个复选框
$(document).on('change','.check',function(){//Add复选框将更改为操作,甚至更改为以后可能添加的操作
var element=$(this);//已单击的元素
var isChecked=element.prop('checked');//如果元素被选中
var isDisabled=element.prop('disabled');//如果该元素被禁用,暂时未使用,则可能会有用
如果(isChecked){//我们检查是选中还是取消选中复选框
number++;//递增ids索引号
element.sides('#'+id[number]).prop('disabled',!isChecked);//重新启用复选框
}否则{
var elementIndex=ids.indexOf(element.attr('id');//获取ids数组中当前元素的索引
而(number>elementIndex){//循环通过比我们更大的id
element.sides('#'+id[number]).prop('disabled',true).prop('checked',false);//禁用并取消选中任何较大的ID
数字--;//减量索引
}
}
log('index:'+number+',id:'+ids[number]);//跟踪我们所处的索引
});
});

在回答了一些问题后,我想到了以下几点:

$(文档).ready(函数(){
$('.check').prop('disabled',true);//在执行之前禁用所有复选框
var id=$('.check[id]').map(function(){//创建id的排序数组
返回此.id;
}).get().sort();
var number=0;//第一个元素,也是最低的元素
var lowest=ids[number];//最低,保留它只是为了看起来像您的代码
$('#'+最低).prop('disabled',false);//启用第一个复选框
$(document).on('change','.check',function(){//Add复选框将更改为操作,甚至更改为以后可能添加的操作
var element=$(this);//已单击的元素
var isChecked=element.prop('checked');//如果元素被选中
var isDisabled=element.prop('disabled');//如果该元素被禁用,暂时未使用,则可能会有用
如果(isChecked){//我们检查是选中还是取消选中复选框
number++;//递增ids索引号
element.sides('#'+id[number]).prop('disabled',!isChecked);//重新启用复选框
}否则{
var elementIndex=ids.indexOf(element.attr('id');//获取ids数组中当前元素的索引
而(number>elementIndex){//循环通过比我们更大的id
element.sides('#'+id[number]).prop('disabled',true).prop('checked',false);//禁用并取消选中任何较大的ID
数字--;//减量索引
}
}
log('index:'+number+',id:'+ids[number]);//跟踪我们所处的索引
});
});

我相信这正是您想要实现的目标,如果没有,我们可以在此基础上进一步扩展

jQuery(函数($){
var id=$('.check').map(函数(){
返回此.id;
}).get();
var min=Math.min(…id);
var max=Math.max(…id);
$(document).on('change','check',function(){
var self=$(这是);
if($(this.attr('id')==min){
$('#'+max).prop('checked',self.is(':checked')).prop('disabled',self.is(':checked'));
}else if($(this).attr('id')==max){
$('#'+min).prop('checked',self.is(':checked')).prop('disabled',self.is(':checked'));
}
})
});

我相信这正是您想要实现的目标,如果没有,我们可以在此基础上进一步扩展

jQuery(函数($){
var id=$('.check').map(函数(){
返回此.id;
}).get();
var min=Math.min(…id);
var max=Math.max(…id);
$(document).on('change','check',function(){
var self=$(这是);
if($(this.attr('id')==min){
$('#'+max).prop('checked',self.is(':checked')).prop('disabled',self.is(':checked'));
}else if($(this).attr('id')==max){
$('#'+min).prop('checked',self.is(':checked')).prop('disabled',self.is(':checked'));
}
})
});


您需要创建一个完整的(在问题中,使用堆栈片段,使用
工具栏按钮)
$(…).prop(“checked”,false)
肯定会取消选中复选框。同样,如果您使用堆栈片段在问题中添加runnable,它将帮助其他人帮助您。我已将小提琴作为堆栈片段复制到问题中。谢谢。从现在起我将使用它。”