CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

在checkbox列表中,按shift多选的问题。来者有分

楼主webboy1(大胡子)2005-11-01 08:52:56 在 Web 开发 / JavaScript 提问

在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'>&nbsp;&nbsp;"  
  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

相关问题

  • 高分请教!如何在ListBox(列表框)中每一项的开始加入一个CheckBox(检查框)!!!!!
  • 谁有带CheckBox的文件列表控件
  • 请问如何构造带上百个CheckBox的列表?
  • 列表控件的制作(给分)
  • 关于加速列表问题(100分)
  • ~~~~~~~~~~高分,web中列表的设计~~~~~!!!
  • ~~~~~~~~高分求web中列表的设计~~~~~~!!!
  • 问题回答列表(依情给分)
  • 送分,下拉式列表的问题
  • 我的下拉列表框为什么没有下拉列表部分?高分

关键词

  • checkbox
  • 列表
  • 範圍
  • 選擇
  • shift
  • 意思

得分解答快速导航

  • 帖主:webboy1
  • zhaoxiaoyang
  • fantiny
  • friendlyFour
  • zhaoxiaoyang

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo