需求其实很简单,就是实现多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>
- 大小: 27.3 KB
分享到:
相关推荐
js 实现 两个checkbox互斥问题! 值得下载看看!资源免费,大家分享!!
本文实例讲述了JS实现checkbox互斥(单选)功能。分享给大家供大家参考,具体如下: <html xmlns=http://www.w3.org/1999/xhtml > <head> <title>www.jb51.net CheckBox单选</title> ...
checkBox分别处理选中与不选中checkBox分别处理选中与不选中
JQuery 判断checkbox是否选中,checkbox全选,获取checkbox选中值
checkbox多项选中及取消选中
所以checkbox为false。...把选中的checkbox中的id,其中包括模块id,操作id,拼接成一个字符串,然后把字符串传递到action中。 每次调用此页面时,首选调用action中的选中的id字符串,然后根据在id字符串的基
jquery checkbox 选中 取消 checkbox多选
简单实现自定义checkbox控件四种选择状态的图片样式
通过CheckBox删除选中记录
jquery 实现鼠标单击行时,改变行的背景颜色,选中checkbox复选框
JavaScript实现CheckBox选中方法
循环动态判断checkbox是否被选中foreach(Control c in Panel1.Controls)
CheckBox 选中效果 选中子的父自动选中,选中父的子全部选中 适用于C:Foreach 读取${list} 然后选中的选项添加到数据库
checkbox是否选中。选中几个触发什么事件。
jquery获取checkbox选中的值,包括全选 取消全选 反选 选中奇数行 获取选中的值
两层嵌套的checkbox记录选中状态,listview嵌套Gridview,Gridview嵌套Checkbox
代码中简单易懂的获取所选中的CheckBox的值
实现ListView上CheckBox的选择动态改变选中项的数目以及提取选中项信息,可以运用到购物车结算模块中
博文链接:https://qsfwy.iteye.com/blog/234331