首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

兑现Checkbox的互斥选中

2012-08-27 
实现Checkbox的互斥选中需求其实很简单,就是实现多checkbox的互斥选中,看下面图:AAA和BBB和CCC不能同时选

实现Checkbox的互斥选中
     需求其实很简单,就是实现多checkbox的互斥选中,看下面图:AAA和BBB和CCC不能同时选中,当然这个里面可以定义其他规则,CCC和EEE不能同时选中,DDD和EEE不能同时选中。同时选中的时候要进行提示,那几个冲突了,并且将冲突去掉。



不说了,直接上代码,效果图如上,欢迎大家PK。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script><script>function clickCallBack(e){var rule = [["0","1","4"],["2","4"],["3","4"]];var ruleLabel = [["AAA","BBB","EEE"],["CCC","EEE"],["DDD","EEE"]];if(!checkCan(rule,ruleLabel)){e.checked =false;}}function contains(obj,a) {var i = a.length;while (i--) {   if (a[i] == obj) {   return true;   }}return false;}function checkCan(rule,ruleLabel){var checkedVals = new Array();jQuery("input[name=test]:checked").each(function(){checkedVals.push($(this).val());});jQuery.each(rule,function(index){    var ruleItem = $(this);var flag =0;for(i=0;i<ruleItem.length;i++){if(contains(ruleItem[i], checkedVals)){   flag++;   }}if(flag>=ruleItem.length) {var ruleLabelItem = ruleLabel[index];var promote = "";var labelSize = ruleLabelItem.length;for(i=0;i<labelSize;i++){if(i < labelSize - 1){   promote += "'" + ruleLabelItem[i] + "'同";} else {promote += "'" + ruleLabelItem[i] + "'";}}alert(promote+"是互斥的,不能同时选中!");return false;}});return true;}</script><title>Insert title here</title></head><body>       <input type="checkbox" name="test" value="0" onclick="clickCallBack(this)"/>AAA   <input type="checkbox" name="test" value="1" onclick="clickCallBack(this)"/>BBB   <input type="checkbox" name="test" value="2" onclick="clickCallBack(this)"/>CCC   <input type="checkbox" name="test" value="3" onclick="clickCallBack(this)"/>DDD   <input type="checkbox" name="test" value="4" onclick="clickCallBack(this)"/>EEE   <input type="checkbox" name="test" value="5" onclick="clickCallBack(this)"/>FFF   <input type="checkbox" name="test" value="6" onclick="clickCallBack(this)"/>GGG   <input type="checkbox" name="test" value="7" onclick="clickCallBack(this)"/>HHH</body></html>


热点排行