JavaScript操作checkbox复选框


    JavaScript操作checkbox的方式和操作radio的方式相似,都是利用元素项的checked属性来完成。先获取checkbox元素集合,遍历集合,对集合中的每一项做操作。


    这里讲几个常用的checkbox复选框的常见示例。


取值


    给定页面

<body>
	<p>
		<label for="hobby">Hobby:  
			<input type="checkbox" name="hobby" value="reading" />阅读  
			<input type="checkbox" name="hobby" value="climbing" />爬山  
			<input type="checkbox" name="hobby" value="running" />跑步  
			<input type="checkbox" name="hobby" value="fishing" />钓鱼  
			<input type="checkbox" name="hobby" value="cooking" />做饭  
			</br></br>
			<input type="button" value="Get Value" οnclick="getValue()" />
		</label>
	</p>
</body>

    要获取多选框的值,该怎么处理呢?


    跟获取radio单选按钮值的步骤相同。


    1 获取复选框元素集合

    2 遍历复选框元素

    3 将选中的复选框的值拼接出来,返回

function getValue(){
	var hobbies = document.getElementsByName("hobby");
	var value;
	for (i=0; i<hobbies.length; i++){
		if (hobbies[i].checked){
			if (!value){
				value = hobbies[i].value;
			} else {
				value += "," + hobbies[i].value;
			}
		}
	}
	
	alert(value == undefined ? '' : value);
}

    这里我们将复选框值拼接出来,之间用“,”分隔,返回的时候,如果没有选中,则返回空字符串,而非JavaScript的默认空值undefined。

全选


    全选是复选框中常见的一个操作,选中所有的选项。

    全选也是基于checked属性的操作,遍历所有的元素项,将每一个元素项的checked属性都置为true。

<body>
	<p>
		<label for="hobby">Hobby:  
			<input type="button" name="selectAll" value="selectAll" οnclick="selectAll()" />全选  
			<input type="button" name="selectOther" value="selectOther" οnclick="selectOther()" />反选
			</br></br>
			<input type="checkbox" name="hobby" value="reading" />阅读  
			<input type="checkbox" name="hobby" value="climbing" />爬山  
			<input type="checkbox" name="hobby" value="running" />跑步  
			<input type="checkbox" name="hobby" value="fishing" />钓鱼  
			<input type="checkbox" name="hobby" value="cooking" />做饭  
			</br></br>
			<input type="button" value="Get Value" οnclick="getValue()" />
		</label>
	</p>
</body>

    全选时,首先需要判断当前复选框是否处于全选的状态,然后再适时的全选,或全不选。


判断是否处于全选状态:true,全选;false,非全选

function isSelectAll(){
	var hobbies = document.getElementsByName("hobby");
	for (i=0; i<hobbies.length; i++){
		if (!hobbies[i].checked){
			return false;
		}
	}
	return true;
}

全选操作

function selectAll(){
	var hobbies = document.getElementsByName("hobby");
	if (isSelectAll()){
		for (i=0; i<hobbies.length; i++){
			hobbies[i].checked = false;
		}
	} else {
		for (i=0; i<hobbies.length; i++){
			hobbies[i].checked = true;
		}
	}
}


反选


    反选的操作即选中那些当前没有被选中的项,并将当前选中的项取消。


function selectOther(){
	var hobbies = document.getElementsByName("hobby");
	for (i=0; i<hobbies.length; i++){
		if (hobbies[i].checked){
			hobbies[i].checked = false;
		} else {
			hobbies[i].checked = true;
		}
	}
}


    上面几个例子,都是本人今天没事写的玩的,里面可能有些操作不是很符合客户体验,如果您有更好的方案,可以提出来。但就通过上面的示例,应该能很好的理解checkbox了吧。


    其实 checkboxradio一样,都是基于checked属性,对它们的操作就是对checked属性的操作,技术checked属性就可以了。


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值