jquery实现复选框联动

<!DOCTYPE html>
<html> 
<head> 
<title></title> 
<style type='text/css'>
</style>
</head> 
<body>
	<input name="input1" type="checkbox" value="input1">input1</input>
	<input name="input2" type="checkbox" value="input2">input2</input>
	<input name="input3" type="checkbox" value="input3">input3</input>
	<input name="input4" type="checkbox" value="input4">input4</input>
</body> 
<script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.js'></script>
<script type='text/javascript'> 
	$('input[type="checkbox"]').click(function(){
		// 获取当前复选框在所有复选框中索引
		var index = $('input[type="checkbox"]').index(this);
		var arrStage = ['input4','input3','input2'];
		var length = arrStage.length;

		for(var i=length-index; i<length; i++){
			if($('input[type="checkbox"][name="'+ arrStage[i] +'"]').prop('checked')){
				// 根据type和name找到复选框-获取该复选框前所有复选框-选中所有复选框-只读
				$('input[type="checkbox"][name="'+ arrStage[i] +'"]').prevAll('input[type="checkbox"]')
					.prop('checked',true).attr('disabled','true');
			} else{
				$('input[type="checkbox"][name="'+ arrStage[i] +'"]').prevAll('input[type="checkbox"]')
					.removeAttr('disabled');
			}
		}
	});
</script> 
</html>

运行效果:选中第N个复选框时,前面N-1个复选框置灰,不可更改。chrome ie8下均正常。

注:在j2ee开发中,复选框多为form的一个字段,采用此方案实现所需效果,提交form时,后台获取不到部分复选框的值。原因:复选框设置了disabled属性,提交form时,form不再读取标签,而使用其默认值。解决:提交form前,将所有复选框的disabled属性移除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值