下面的代码是可以使用的,实现的功能是点击明查、暗访、上网、跟班、夜查的时候添乘和巡视是不可选的,并且它们可以多选。选中添乘和巡视的时候其它的框是不可选的并且它们2各可以多选。现在要在多加一个多选框<input type="checkbox" name="jcfs" id="jcfs" value="查岗"> 查岗,点击上面的任何一个多选框这个查岗都是灰色不可选,如果点击查岗其它的多选框都是灰色不可选(之前其它的几个功能需保留)由于分数只有39分了,只有39分先笑纳。这个代码是csdn前辈给写的,我自己真实的改不来。请大大们帮忙。<input type="checkbox" name="jcfs" id="jcfs" value="明查" checked>
明查 <input type="checkbox" name="jcfs" id="jcfs" value="暗访"> 暗访
<input type="checkbox" name="jcfs" id="jcfs" value="添乘"> 添乘
<input type="checkbox" name="jcfs" id="jcfs" value="上网"> 上网
<input type="checkbox" name="jcfs" id="jcfs" value="跟班"> 跟班
<input type="checkbox" name="jcfs" id="jcfs" value="巡视"> 巡视
<input type="checkbox" name="jcfs" id="jcfs" value="夜查"> 夜查
<script type="text/javascript">
<!--
Array.prototype.indexOf = function(value) {
var index = -1;
for (var i=0; i<this.length; i++)
{
if (this[i] == value)
{
index = i;
break;
}
}
return index;
};
Array.prototype.contains = function(value) {
if (this.indexOf(value) != -1)
return true;
else
return false;
};var colCbx = document.getElementsByName("jcfs");
var singleValue = ["添乘","巡视"];
var multipleMax = 3;
var selectedValue = new Array();function getCheckBoxByValue(value)
{
for (var i=0; i<colCbx.length; i++)
if(colCbx[i].value == value) return colCbx[i];
}function controlOptions(cbx)
{
for (var i=0; i<colCbx.length; i++)
if((cbx.isSingle && !colCbx[i].isSingle)
|| (!cbx.isSingle && colCbx[i].isSingle && (cbx.checked || selectedValue.length == 1)))
colCbx[i].disabled = cbx.checked;
}function setSelectedValue(cbx)
{
if (cbx.isSingle)
{
var value = selectedValue.shift();
if (value)
getCheckBoxByValue(value).checked = false; if (cbx.checked)
selectedValue.push(cbx.value);
}
else
{
if (cbx.checked)
{
if (selectedValue.length == multipleMax)
getCheckBoxByValue(selectedValue.shift()).checked = false; selectedValue.push(cbx.value);
}
else
selectedValue.splice(selectedValue.indexOf(cbx.value), 1);
}
}for (var i=0; i<colCbx.length; i++)
{
colCbx[i].isSingle = singleValue.contains(colCbx[i].value); colCbx[i].onclick = function() {
controlOptions(this);
setSelectedValue(this);
addtxldj();
};
}
</script>
明查 <input type="checkbox" name="jcfs" id="jcfs" value="暗访"> 暗访
<input type="checkbox" name="jcfs" id="jcfs" value="添乘"> 添乘
<input type="checkbox" name="jcfs" id="jcfs" value="上网"> 上网
<input type="checkbox" name="jcfs" id="jcfs" value="跟班"> 跟班
<input type="checkbox" name="jcfs" id="jcfs" value="巡视"> 巡视
<input type="checkbox" name="jcfs" id="jcfs" value="夜查"> 夜查
<script type="text/javascript">
<!--
Array.prototype.indexOf = function(value) {
var index = -1;
for (var i=0; i<this.length; i++)
{
if (this[i] == value)
{
index = i;
break;
}
}
return index;
};
Array.prototype.contains = function(value) {
if (this.indexOf(value) != -1)
return true;
else
return false;
};var colCbx = document.getElementsByName("jcfs");
var singleValue = ["添乘","巡视"];
var multipleMax = 3;
var selectedValue = new Array();function getCheckBoxByValue(value)
{
for (var i=0; i<colCbx.length; i++)
if(colCbx[i].value == value) return colCbx[i];
}function controlOptions(cbx)
{
for (var i=0; i<colCbx.length; i++)
if((cbx.isSingle && !colCbx[i].isSingle)
|| (!cbx.isSingle && colCbx[i].isSingle && (cbx.checked || selectedValue.length == 1)))
colCbx[i].disabled = cbx.checked;
}function setSelectedValue(cbx)
{
if (cbx.isSingle)
{
var value = selectedValue.shift();
if (value)
getCheckBoxByValue(value).checked = false; if (cbx.checked)
selectedValue.push(cbx.value);
}
else
{
if (cbx.checked)
{
if (selectedValue.length == multipleMax)
getCheckBoxByValue(selectedValue.shift()).checked = false; selectedValue.push(cbx.value);
}
else
selectedValue.splice(selectedValue.indexOf(cbx.value), 1);
}
}for (var i=0; i<colCbx.length; i++)
{
colCbx[i].isSingle = singleValue.contains(colCbx[i].value); colCbx[i].onclick = function() {
controlOptions(this);
setSelectedValue(this);
addtxldj();
};
}
</script>
<input type="checkbox" name="jcfs" value="暗访"> 暗访
<input type="checkbox" name="jcfs" value="添乘"> 添乘
<input type="checkbox" name="jcfs" value="上网"> 上网
<input type="checkbox" name="jcfs" value="跟班"> 跟班
<input type="checkbox" name="jcfs" value="巡视"> 巡视
<input type="checkbox" name="jcfs" value="夜查"> 夜查
<input type="checkbox" name="jcfs" value="查岗"> 查岗
<script type="text/javascript">
//哪个前辈写的,连id都一大串相同,代码也腻长难懂了
var input=document.getElementsByName("jcfs");
for(var i=0;i<input.length;i++){
input[i].onclick=function(){
fun();
};
}
function fun(){
var v="";
for(var i=0;i<input.length;i++){
if(input[i].checked){
v+=input[i].value+",";
if("明查、暗访、上网、跟班、夜查".indexOf(input[i].value)!=-1){
//选中 明查、暗访、上网、跟班、夜查 --> 添乘和巡视 (查岗)是不可选
disable("添乘、巡视、查岗");
}else if("添乘、巡视".indexOf(input[i].value)!=-1){
//选中 添乘和巡视 --> 明查、暗访、上网、跟班、夜查 (查岗)不可选
disable("明查、暗访、上网、跟班、夜查、查岗");
}else if(input[i].value=="查岗"){
//选中(查岗) --> 其他不可选
disable("明查、暗访、上网、跟班、夜查、添乘、巡视");
}
}
}
if(v==""){
//一个都没选择,还原所有
disable("");
}
}
function disable(v){
for(var i=0;i<input.length;i++){
if(v.indexOf(input[i].value)!=-1){
input[i].checked=false;
input[i].disabled=true;
}else{
input[i].disabled=false;
}
}
}
fun();
</script>
1.把同一类的可以多选的分为一组,给一个类。
2.不同的组有不同的类。
3.使用jquery通过类查询获取集合,如果是同一类,就可以用,不同类的就不能使用。
实现之。