checkbox选取,全选

1、获取到checkbox要显示的内容,初始化。要点:给label和checkbox赋id,并且将想要获取的值放到html中是最稳定的,要的时候去取。并且尽量在给checkbox的checked属性赋值时,尽量使用prop('checked',true);attr会有bug。

$.each(data.model.data.teacherInfoList, function(i, oneData) {
	$(".teacher_content").append(
	        '<div class="teacher_option_list">'+
		'<div class="radiocheckbox_item">'+
		'<label for="radio-single" class="label_check  teacher_option'+i+'">'+
		'<input type="checkbox" class="teacher_input_select'+i+'" name="teacher_radio_option"/>'+
		'</label></div>'+'<div class="teachername_div teacher_name'+i+'"></div></div>'
	);
	$('.teacher_name'+i).text(oneData.memberName);
	$(".teacher_option"+i).attr('for','radio-single'+(i+1));
	$(".teacher_input_select"+i).attr('id','radio-single'+(i+1));
        $(".teacher_input_select"+i).attr('teachername',oneData.memberName);
        $(".teacher_input_select"+i).attr('teacherid',oneData.memberRoleId);
	if(toInitTeacher(oneData.memberRoleId)==true){
		$('label[for="radio-single'+(i+1)+'"]').removeClass("c_off").addClass("c_on");
		$('#radio-single'+(i+1)).prop('checked',true);
	 }
	$('.teacher_input_select'+i).on('click',function (e) {
	        if(e.target.checked){
		       teacherIdList.push(oneData.memberRoleId);
		       teacherNameList.push(oneData.memberName);
		       $(this).parent().removeClass("c_off").addClass("c_on");
		       $('#radio-single'+(i+1)).attr('checked',true);
		       $(".teacherall_togg_checkbox").attr(
                                  "ischeck",<span style="font-family: Arial, Helvetica, sans-serif;">$("input[name='teacher_radio_option']").length == $("input[name='teacher_radio_option']:checked").length? </span>
<span style="font-family: Arial, Helvetica, sans-serif;">                                                                            "0" : "1"); </span>
		    	if($(".teacherall_togg_checkbox").attr("ischeck")==0){
		    		$('.teacherall_togg_checkbox').attr('src','resources/images/checkbox_on.png');
		    			}
	        }else{
		     $(this).parent().removeClass("c_on").addClass(" c_off");
		     $('#radio-single'+(i+1)).attr('checked',false);
		     $(".teacherall_togg_checkbox").attr("ischeck",$("input[name='teacher_radio_option']").length == $("input[name='teacher_radio_option']:checked").length ? "0" : "1"); 
		    if($(".teacherall_togg_checkbox").attr("ischeck")==1){
		    	$('.teacherall_togg_checkbox').attr('src','resources/images/checkbox_off.png');
		    }
		    for(var j=0;j<teacherIdList.length;j++){
		    if(teacherIdList[j] == oneData.memberRoleId){
		        teacherIdList.remove(j);
		        teacherNameList.remove(j);
		     }
		 }
             }
       });
});
2、全选:(全选时根据input的name获取选择范围的,通过id来获取每个name和id)
if ($(this).attr('ischeck')=='1') {
			//全选按钮
			$('.teacherall_togg_checkbox').attr('src','resources/images/checkbox_on.png');
			$(this).attr('ischeck','0');
			//全选按钮点击选中所有
			teacherIdList=[];
			teacherNameList=[];
			var teacherCheckbox = $('input[name="teacher_radio_option"]');
			for(var i=0;i<teacherCheckbox.length;i++){
				teacherNameList.push($('#radio-single'+(i+1)).attr('teachername'));
				teacherIdList.push($('#radio-single'+(i+1)).attr('teacherid'));
				$('label[for="radio-single'+(i+1)+'"]').removeClass("c_off").addClass("c_on");
				$('#radio-single'+(i+1)).prop('checked',true);
			}
		} else {
			$('.teacherall_togg_checkbox').attr('src','resources/images/checkbox_off.png');
			$(this).attr('ischeck','1');
			//点击全不选
			var teacherCheckbox = $('input[name="teacher_radio_option"]');
			for(var i=0;i<teacherCheckbox.length;i++){
				$('label[for="radio-single'+(i+1)+'"]').removeClass("c_on").addClass("c_off");
				$('#radio-single'+(i+1)).prop('checked',false);
			}
			teacherIdList=[];
			teacherNameList=[];
		}
3、通过子选项来控制全选按钮(当然这个处理要再checkbox得点击事件中做)

$(".teacherall_togg_checkbox").attr("ischeck",$("input[name='teacher_radio_option']").length == $("input[name='teacher_radio_option']:checked").length? "0" : "1");

如果选择了得按钮的长度等于总长度,则赋值为选中。4、再次点进来(如果是个弹出框,得将选过的再次选中)
/*判断某一个老师按钮是否选中*/
function toInitTeacher(id){
	if(teacherIdList.length>0){
		for(var j=0;j<teacherIdList.length;j++){
				if(teacherIdList[j]==id){
					return true;
				}
		}
	}
}
在初始化时,每个循环中传入当前循环的id来比较是否当前checkbox选中。

要实现HTML复选框的全选功能,你可以按照以下步骤进行操作: 1. 首先,确保复选框的"type"属性值设置为"checkbox",这样它才会被识别为复选框。 2. 创建一个全选按钮,并为其绑定点击事件,以便在点击时执行全选操作。 3. 在点击事件中,使用JavaScript的循环遍历所有的复选框元素。 4. 对每个复选框元素,将其"checked"属性值设置为"true",即选中状态,实现全选效果。 下面是一个示例代码,演示了如何实现HTML复选框的全选功能: ```html <!DOCTYPE html> <html> <head> <script> function selectAll() { var checkboxes = document.querySelectorAll('input[type="checkbox"]'); for (var i = 0; i < checkboxes.length; i++) { checkboxes[i].checked = true; } } </script> </head> <body> <input type="checkbox" name="option1" value="1">选项1<br> <input type="checkbox" name="option2" value="2">选项2<br> <input type="checkbox" name="option3" value="3">选项3<br> <input type="button" value="全选" onclick="selectAll()"> </body> </html> ``` 在上述示例中,我们首先创建了3个复选框,每个都有不同的name和value属性值。然后创建了一个"全选"按钮,并为其绑定了一个名为"selectAll()"的点击事件处理函数。 在"selectAll()"函数中,我们使用querySelectorAll()方法选取了所有的类型为"checkbox"的input元素,然后使用循环遍历每个复选框元素,并将其"checked"属性值设置为"true",即选中状态。 这样,当点击"全选"按钮时,所有的复选框都会被选中,实现了HTML复选框的全选功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值