前端checkbox全选反选

在前端经常遇到对复选框一键全选的操作,记录一下操作。

1.典型用法

function checkAllBox(){
	$("input[type='checkbox'][name='myCheck']").each(function(){
		if($(this).is(':checked')){
			$(this).attr("checked",false);
		}else{
			$(this).attr("checked",true);
		}
	});
}
//使用(checkbox需加属性name="myCheck")
<input type="button" id="btn" onclick="checkAllBox()"/>

这样的用法在IE可以正常使用,但是在chrome和firefox第三次点击失效。

2.jq选择器+原生js操作

function checkAllBox2(){
            var CheckBox = $('input[name = myCheck]');
            for(var i = 0; i < CheckBox.length; i++){
				    if(CheckBox[i].checked){
				        CheckBox[i].removeAttribute("checked");
				    }
				    else{
				        CheckBox[i].setAttribute("checked","checked");
				    }
		    }
        }

//使用(需要为checkbox添加属性name="myCheck")
<input type="button" id="btn2" onclick="checkAllBox2();" />

兼容IE,火狐,chrome。不过对手动选中的复选框,移除属性不起作用,不是很友好。

3.这是可选的方案,解决各个浏览器不兼容的问题

function checkAllBox2(){
            var CheckBox = $('input[name = myCheck]');
            for(var i = 0; i < CheckBox.length; i++){
				    if($(CheckBox[i]).prop("checked")){
				        $(CheckBox[i]).prop("checked",false);
				    }
				    else{
				        $(CheckBox[i]).prop("checked","checked");
				    }
		    }
        }

//使用(需要为checkbox添加属性name="myCheck")
<input type="button" id="btn2" onclick="checkAllBox2();" />

Prop函数 获取的是 BOOl 类型值。

 

对于未选中一个复选框的判断:

var CheckBox = $('input[name=myCheck]:checked');
// var CheckBox = $('input[type=checkbox]:checked');也行
if(CheckBox.length<1){
	 alert('请至少选择一个复选框');
	 return;
}
else{
	 alert('后续操作');
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值