CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

为什么我循环选择checkBox的时候,还剩最后一个的时候取不到值呢???

楼主xwj1003(哈罗DayDayUp)2006-03-01 14:56:37 在 Web 开发 / JavaScript 提问

 
  <input   type=checkbox   value=...   name=SelectedId>  
   
  代码:  
  for(var   i=0;i<document.form1.SelectedId.length;i++)  
  {  
          alert(document.form1.SelectedId[i].value);  
  }  
   
  如果checkbox   的个数>1时,使用正常(如果执行上面的代码,能取到值)。  
  当只有1个checkbox   的时候,如果执行上面的代码,取不到值,连alert都没出来。理论上应该显示1。  
   
  一般会是什么情况????? 问题点数:20、回复次数:7Top

1 楼kangqin(小康)回复于 2006-03-01 15:02:53 得分 3

当只有一个选择时,不是数组,直接调用即可.  
  <form   name="form1">  
  <input   type=checkbox   value="999"   name=SelectedId>  
  </form>  
  <script>  
  alert(document.form1.SelectedId.value);  
  </script>Top

2 楼xwj1003(哈罗DayDayUp)回复于 2006-03-01 15:03:49 得分 0

我又测试了一下:  
  删除了for循环,  
  换成了:alert(document.form1.SelectedId.length);  
   
  如果checkbox   的个数>1时,   能显示页面有多少个checkbox。  
  当只有1个checkbox   的时候,如果执行上面的代码,显示的是   undefined  
   
  这是什么情况?Top

3 楼hbhbhbhbhb1021(天外水火(我要多努力))回复于 2006-03-01 15:06:23 得分 3

<input   type=checkbox   value="..."   name=SelectedId>  
  <script   language=javascript>  
  alert(document.getElementsByName("SelectedId").length)  
  </script>Top

4 楼mingxuan3000(铭轩)回复于 2006-03-01 15:10:03 得分 3

1个checkbox     ,不是数组,.length   is   a   attribute   of   arrayTop

5 楼mingxuan3000(铭轩)回复于 2006-03-01 15:12:10 得分 8

var   a=document.form1.SelectedId;  
  if(a.length){  
        for()循环  
  }else{  
        alert(a.value);  
  }Top

6 楼xwj1003(哈罗DayDayUp)回复于 2006-03-01 15:15:37 得分 0

hbhbhbhbhb1021(天外水火(我要多努力))     的方法可行  
   
  但是我需要判断一下,   如:  
  for(var   i=0;i<document.form1.SelectedId.length;i++)  
  {  
          if(document.form1.SelectedId[i].checked)   {  
                  name   +=   document.form1.SelectedId[i].value  
          }    
  }  
  当只有1个checkbox   的时候,   name取不到值,这个问题如何解决阿?  
  注:一定要用循环才行,因为大部分情况是N>1条记录。Top

7 楼zjm66688(阿明)回复于 2006-03-01 15:18:21 得分 3

一个checkbox时不是数组,所以不可以用document.form1.SelectedId[i]   来获得控件.可以写一个相同name的隐含控件来充数,循环取值时从1开始,如:  
  <input   type=hidden   name=SelectedId>  
  <input   type=checkbox   value=...   name=SelectedId>  
   
  代码:  
  for(var   i=1   ;   i<document.form1.SelectedId.length;i++)  
  {  
          alert(document.form1.SelectedId[i].value);  
  }  
   
  Top

相关问题

  • 如何循环定义checkbox属性
  • JSP中有若干个同名的checkbox,他们的值不同,我想循环去到所有同名的checkbox的值,请问如何做?
  • JSP中有若干个同名的checkbox,他们的值不同,我想循环去到所有同名的checkbox的值,请问如何做?
  • Cookies循环取值问题
  • 怎样才能点击checkbox使它三种状态循环?
  • 能否或怎样用循环来判断多个if(CheckBox->Checked)?
  • 控件循环赋值或取值
  • checkbox传值问题!
  • DataGrid中的CheckBox,能不能不用循环检测的办法来得知是哪一个checkbox被选?
  • 如何循环动态生成的checkbox控件,判断其是否被选择?

关键词

  • 代码
  • 执行
  • document
  • checkbox
  • 数组
  • selectedid
  • 时候
  • 显示
  • alert
  • length

得分解答快速导航

  • 帖主:xwj1003
  • kangqin
  • hbhbhbhbhb1021
  • mingxuan3000
  • mingxuan3000
  • zjm66688

相关链接

  • Web开发类图书

广告也精彩

反馈

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