<script language="javascript" type="text/javascript">var l = 0;
var strTemp = "";
var x = 0;
var strChar = "";
var IsCheck = false;
var strCheck = "";
var arr=document.all.tags("input"); //取出checkbox集合 function maxchk(obj)
{
var txt=document.getElementById("lblJobType");
txt.innerText="";
var count = 0;
for(var i=0;i<arr.length-4;i++)
{
var strTempArray = new Array();
var strTestArray = new Array();
if(arr[i].type=="checkbox")
{
if(arr[i].checked)
{
if( txt.innerText=="")
{
if ( strChar == "" )
{
txt.innerText=arr[i].value+strChar;
}
else
{
if ( IsCheck )
{
//alert(strChar);
strTempArray = strChar.split(",");
if ( strTempArray.length < 5 )
{
txt.innerText=arr[i].value+","+strChar;
}
else if ( strTempArray.length = 5 )
{
var str="";
var strTestArray = new Array(); strTestArray = strChar.split(","); for(var k=1;k<arr.length-4;k++)
{
arr[k].disabled = false;
} for ( var n = 0; n < strTestArray.length;n++ )
{
if ( str != "" )
{
str=str+","+strTestArray[n];
}
else
{
str = strTestArray[n];
}
}
txt.innerText = str;
}
strChar = txt.innerText;
}
else
{
strTempArray = strChar.split(",");
if ( strTempArray.length < 5 )
{
txt.innerText=arr[i].value+","+strChar;
}
}
}
}
else
{
strTempArray = strChar.split(",");
if ( strTempArray.length < 5 )
{
txt.innerText+=","+arr[i].value;
}
}
strTemp = txt.innerText;
var n = txt.innerText;
var strArray = new Array();
strArray = n.split(",");
l=strArray.length;
if (l>4)
{
for(var j=1;j<arr.length-4;j++)
{
if ( arr[j].checked )
{
arr[j].disabled = false;
}
else
{
arr[j].disabled = true;
}
}
strArrayTemp = strArray;
window.alert("您已经选择了5个区域");
}
else
{
if( l < 4 )
{
for(var k=1;k<arr.length-4;k++)
{
arr[k].disabled = false;
}
txt.innerText = strTemp;
}
}
x = l;
}
else
{
count ++;
strTestArray = strChar.split(",");
for ( var m = 0; m < strTestArray.length; m ++ )
{
if ( arr[i].value == strTestArray[m] )
{
strTestArray=strTestArray.del(m);
}
}
if ( count == arr.length-5 )
{
for(var k=1;k<arr.length-4;k++)
{
arr[k].disabled = false;
}
if( txt.innerText=="")
{
txt.innerText=strChar; strTempArray = txt.innerText.split(",");
x = strTempArray.length;
}
else
{
var strTempArray = new Array();
strTempArray = strChar.split(",");
if ( strTempArray.length < 5 )
{
txt.innerText+=","+arr[i].value;
}
strTempArray = txt.innerText.split(",");
x = strTempArray.length;
}
}
strTemp = txt.innerText;
if ( x < 4 )
{
for(var k=1;k<arr.length-4;k++)
{
arr[k].disabled = false;
}
//txt.innerText = strTemp;
}
}
}
}
}
var strTemp = "";
var x = 0;
var strChar = "";
var IsCheck = false;
var strCheck = "";
var arr=document.all.tags("input"); //取出checkbox集合 function maxchk(obj)
{
var txt=document.getElementById("lblJobType");
txt.innerText="";
var count = 0;
for(var i=0;i<arr.length-4;i++)
{
var strTempArray = new Array();
var strTestArray = new Array();
if(arr[i].type=="checkbox")
{
if(arr[i].checked)
{
if( txt.innerText=="")
{
if ( strChar == "" )
{
txt.innerText=arr[i].value+strChar;
}
else
{
if ( IsCheck )
{
//alert(strChar);
strTempArray = strChar.split(",");
if ( strTempArray.length < 5 )
{
txt.innerText=arr[i].value+","+strChar;
}
else if ( strTempArray.length = 5 )
{
var str="";
var strTestArray = new Array(); strTestArray = strChar.split(","); for(var k=1;k<arr.length-4;k++)
{
arr[k].disabled = false;
} for ( var n = 0; n < strTestArray.length;n++ )
{
if ( str != "" )
{
str=str+","+strTestArray[n];
}
else
{
str = strTestArray[n];
}
}
txt.innerText = str;
}
strChar = txt.innerText;
}
else
{
strTempArray = strChar.split(",");
if ( strTempArray.length < 5 )
{
txt.innerText=arr[i].value+","+strChar;
}
}
}
}
else
{
strTempArray = strChar.split(",");
if ( strTempArray.length < 5 )
{
txt.innerText+=","+arr[i].value;
}
}
strTemp = txt.innerText;
var n = txt.innerText;
var strArray = new Array();
strArray = n.split(",");
l=strArray.length;
if (l>4)
{
for(var j=1;j<arr.length-4;j++)
{
if ( arr[j].checked )
{
arr[j].disabled = false;
}
else
{
arr[j].disabled = true;
}
}
strArrayTemp = strArray;
window.alert("您已经选择了5个区域");
}
else
{
if( l < 4 )
{
for(var k=1;k<arr.length-4;k++)
{
arr[k].disabled = false;
}
txt.innerText = strTemp;
}
}
x = l;
}
else
{
count ++;
strTestArray = strChar.split(",");
for ( var m = 0; m < strTestArray.length; m ++ )
{
if ( arr[i].value == strTestArray[m] )
{
strTestArray=strTestArray.del(m);
}
}
if ( count == arr.length-5 )
{
for(var k=1;k<arr.length-4;k++)
{
arr[k].disabled = false;
}
if( txt.innerText=="")
{
txt.innerText=strChar; strTempArray = txt.innerText.split(",");
x = strTempArray.length;
}
else
{
var strTempArray = new Array();
strTempArray = strChar.split(",");
if ( strTempArray.length < 5 )
{
txt.innerText+=","+arr[i].value;
}
strTempArray = txt.innerText.split(",");
x = strTempArray.length;
}
}
strTemp = txt.innerText;
if ( x < 4 )
{
for(var k=1;k<arr.length-4;k++)
{
arr[k].disabled = false;
}
//txt.innerText = strTemp;
}
}
}
}
}
Array.prototype.del=function(n)
{ //n表示第几项,从0开始算起。
//prototype为对象原型,注意这里为对象增加自定义方法的方法。
//alert("啊啊");
if(n<0) //如果n<0,则不进行任何操作。
return this;
else
return this.slice(0,n).concat(this.slice(n+1,this.length));
/*
concat方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。
这里就是返回this.slice(0,n)/this.slice(n+1,this.length)
组成的新数组,这中间,刚好少了第n项。
slice方法: 返回一个数组的一段,两个参数,分别指定开始和结束的位置。
*/
}
function load(MC_ID)
{
var strArrayTemp = new Array();
var txt=document.getElementById("lblJobType");
txt.innerText = strTemp;
strChar = txt.innerText;
var check = document.createElement("input");
check.type= "checkbox";
check.value= "1";
var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
var oDoc = new ActiveXObject("Microsoft.XMLDOM");
oHttpReq.open("POST", "DropChild.aspx?ClassID="+MC_ID, false);
oHttpReq.send("");
result = oHttpReq.responseText;
oDoc.loadXML(result);
items1 = oDoc.selectNodes("//Table/MC_Name");
items2 = oDoc.selectNodes("//Table/MC_ID");
var itemsLength=items1.length;
var list = document.getElementById("ckSubClass");
list.children[0].removeNode(true);
var row = list.insertRow(); for(i=0;i<itemsLength;i++)
{
if (i > 0 && i % 4 == 0)
{
row = list.insertRow();
}
var check = document.createElement("input");
check.type="checkbox";
check.value=items2[i].text;
var cell=row.insertCell();
cell.appendChild(check);
var label = document.createElement("span");
label.innerHTML = items1[i].text;
cell.appendChild(label);
if ( strChar != "" )
{
strArrayTemp = strChar.split(",");
for ( var a = 0; a < strArrayTemp.length; a ++ )
{
if ( items2[i].text == strArrayTemp[a] )
{
check.checked=true;
IsCheck = true;
if ( strCheck == "" )
{
strCheck = items2[i].text;
}
else
{
strCheck +="," + items2[i].text;
}
}
}
}
}
if (x>4)
{
for(var j=1;j<arr.length-4;j++)
{
if ( arr[j].checked )
{
arr[j].disabled = false;
}
else
{
arr[j].disabled = true;
}
}
}
else if ( x < 4 )
{
for(var k=1;k<arr.length-4;k++)
{
arr[k].disabled = false;
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server"><br /> <table width="96%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="25" bgcolor="#FFFFFF"> <span class="bigbiaoti">请选择区域</span></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><div>
<asp:DropDownList ID="ddlMainClass" runat="server" Width="159px">
</asp:DropDownList><asp:Label ID="lblNum" Text="" runat="server" ></asp:Label><br />
<br />
<asp:CheckBoxList ID="ckSubClass" runat="server" RepeatColumns="4" RepeatDirection="Horizontal"
Width="644px" AutoPostBack="False" OnSelectedIndexChanged="ckSubClass_SelectedIndexChanged">
<asp:ListItem Enabled="false" Text="请选择" Value= "0"></asp:ListItem>
</asp:CheckBoxList>
</div></td>
</tr>
<tr>
<td bgcolor="#FFFFFF" style="height: 55px"><table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#EFEFEF" style="padding-left:20px; padding-bottom:20px; padding-right:20px; padding-top:20px;"><asp:Label ID="lblJobType" Text="" runat="server" ></asp:Label></td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="35" align="right" bgcolor="#FFFFFF"><input type="submit" name="Submit2" value="确定" id="Submit1" language="javascript" onclick="return Submit1_onclick()" />
<input type="button" name="Submit" value="关闭" onclick="javascript:window.close();"/>
</td>
</tr>
</table>
<INPUT id="HdnSelectedValues" type="hidden" name="HdnSelectedValues" runat="server">
</form>
</body>
</html> 以上为整个页面代码,改动了很多次,现在乱七八糟的!
而不在放在每次修改复选框状态时验证。
----
另外,提问题请列出别人可以调试的代码,
如果你自己都懒得整理出一个可以调试的代码,
而期望帮助你的人来为你整理,
似乎是不合理期望.
=================================================================================
谢谢JK_10000(JK)的回复
对这段代码我已经麻木了,我一直是在这上面调试的~
现在都不知道该怎么整理了!
{ //n表示第几项,从0开始算起。
//prototype为对象原型,注意这里为对象增加自定义方法的方法。
//alert("啊啊");
if(n<0) //如果n<0,则不进行任何操作。
return this;
else
return this.slice(0,n).concat(this.slice(n+1,this.length));
/*
concat方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。
这里就是返回this.slice(0,n)/this.slice(n+1,this.length)
组成的新数组,这中间,刚好少了第n项。
slice方法: 返回一个数组的一段,两个参数,分别指定开始和结束的位置。
*/
}
--------------
以上这个prototype方法多余,
Array本身就有splice方法:splice 方法
从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
如:
<script>
var a=new Array(0,1,2,3,4,5);
a.splice(1,3);
alert(a);
</script>
我现在的问题是当在不同的省市下总共选择了5个城市后,点击已经选择城市的复选框取消选择该城市,下面的Label中显示的信息不能相应的改变,而且取消后当总共选择的城市少于5个时,所有的复选框没有应该取消失效的状态,但无法取消!