在checkbox列表中,按shift多选的问题。来者有分
在checkbox列表中,要用javascript实现window文件夹那样的,按shift加鼠标点击选择多个。 问题点数:50、回复次数:7Top
1 楼zhaoxiaoyang(梅雪香@深圳)回复于 2005-11-01 09:25:07 得分 10
不按shift也是多选的啊,什么意思呢?Top
2 楼fantiny(卖身不卖艺的菜鸟)回复于 2005-11-01 09:31:04 得分 10
他的意思可能是他選擇一個範圍,範圍内的checkbox就全部選擇了?Top
3 楼webboy1(大胡子)回复于 2005-11-01 09:31:20 得分 0
比方说,有一组checkbox, 先点第一个checkbox,然后按下shift键,再点第10个checkbox,第一到第十个checkbox都变成选中状态。Top
4 楼friendlyFour(web开发四人组)回复于 2005-11-01 11:43:18 得分 10
<SCRIPT LANGUAGE="JavaScript">
<!--
function ock_check(){
var obj=document.all.frm1.all("c");
var iSum=0;
var myArray = new Array(obj.length);
for(var i=0;i<obj.length;i++){
if(obj[i].checked==true){
iSum++;
myArray[i]=i+1;
}else{
myArray[i]=0;
}
}
if(iSum==2){
var i=0;
var arrChkbox = new Array(2);
for(var j=0;j<myArray.length;j++){
if(myArray[j]!=0){
arrChkbox[i]=myArray[j]-1;
i++;
}
}
for(var ch=arrChkbox[0];ch<arrChkbox[1];ch++){
obj[ch].checked=true;
}
}
return false;
}
//-->
</SCRIPT>
<FORM METHOD=POST ACTION="xxx.asp" name="frm1" onsubmit="return ock_check()">
<%
For i=1 To 20
Response.write i&":<INPUT TYPE='checkbox' NAME='c'> "
If i Mod 5 = 0 Then
Response.write "<BR>"
End if
Next
%>
<BR><INPUT TYPE="submit" value="check" >
</FORM>Top
5 楼muyi666(木易)回复于 2005-11-02 19:46:08 得分 0
upTop
6 楼zhaoxiaoyang(梅雪香@深圳)回复于 2005-11-02 21:41:22 得分 20
看看这个合不合你的要求
<SCRIPT LANGUAGE="JavaScript">
<!--
var isShiftKeyDown=false;//是否shift按下
var lastClk=null;//最后点击的checkbox对象
var lastCheck=false;//最后选择的checkbox的状态
var isMultiSel = false;//是否处于多选状态
var startIndex = -1;//记录上次多选状态起始index
var endIndex = -1;//记录上次多选状态结束index
function chkClk(chkObj){
var chks=frm1.elements("chk");
if(isShiftKeyDown){
if(!lastClk) lastClk = chks[0];
if(isMultiSel)
for(var i=startIndex;i<=endIndex;i++)
chks[i].checked = !lastCheck;
var startChk = lastClk;
var endChk = chkObj;
if(lastClk.sourceIndex > chkObj.sourceIndex){
var temp = startChk;
startChk = endChk;
endChk = temp;
}
for(var i=0;i<chks.length;i++){
if(chks[i] == startChk)
startIndex=i;
if(chks[i] == endChk){
endIndex=i;
break;
}
}
for(var i=startIndex;i<=endIndex;i++)
chks[i].checked = lastCheck;
isMultiSel = true;
}else{
lastClk = chkObj;
isMultiSel = false;
}
lastCheck = chkObj.checked;
}
document.onkeydown=function(){
if(event.keyCode==16)
isShiftKeyDown=true;
}
document.onkeyup = function(){
if(event.keyCode==16)
isShiftKeyDown=false;
}
//-->
</SCRIPT>
<FORM METHOD=POST ACTION="xxx.asp" name="frm1" onsubmit="return ock_check()">
<script language="JavaScript">
<!--
for(var i=0;i<10;i++)
document.write('<input type="checkbox" name="chk" onclick="chkClk(this)"> '+i+'<br>');
//-->
</script>
<BR><INPUT TYPE="submit" value="check" >
</FORM>
Top
7 楼songshang92()回复于 2005-11-10 10:30:57 得分 0
你这个有时不起作用Top




