免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1484 | 回复: 1
打印 上一主题 下一主题

一个怪问题,checkbox.length不能判断出1个,多个却可以 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-24 14:27 |只看该作者 |倒序浏览
目标:实现按钮“check all”即可让页面所有名为download的checkbox.checked=ture;
问题:现当页面中名为download的checkbox(动态生成,所以数目不定)数目大于1时,能正常工作,但当数目为1时,却无法正常工作
代码:<body>;中:
<input type="checkbox" name="download"  value='<%= row.getString("name" %>;'>;//生成checkbox
<input name="button" type="button" onClick="this.value=check(this.form.download)" value="Check All">;  //check all 按钮
以下是javascript代码:
var checkflag = "false";
function check(field) {
if (checkflag == "false"
for (i = 0; i < field.length; i++) {
field.checked = true;}
checkflag = "true";
return "Uncheck All";
}


奇怪,为什么当页面中checkbox只有一个的时候,点击按钮就没反映,而当页面中出现的checkbox多于1个,就可正常工作。目前小弟解决这个问题,用了一个很傻的办法,就是硬写代码,但感觉for (i = 0; i < field.length; i++)应该是可以解决所有情况的

论坛徽章:
0
2 [报告]
发表于 2004-03-25 18:15 |只看该作者

一个怪问题,checkbox.length不能判断出1个,多个却可以

不知道你是怎么解决的。

这个问题也不算太奇怪::wink:

在checkbox多个的时候,就形成了一个数组一样的对象,所以用 download.length 就可以正常工作了,
但是如果只有一个的时候,download仅仅是一个checkbox,没有length属性,这时候download.length == undefined,所以你按按钮的时候就没有反应了。
参见下面的代码:



<form name="info" action="main/main.htm">;
  <input type="checkbox" name="download" value="false" >;
  
  <input type="button" value="click" onclick="test()" >;
</form>;
<script language="javascript">;
  function test(){
    if ( document.info.download == undefined ){
      alert( "document.info.download  undefined" );
      return ;
    }
    if ( document.info.download.length == undefined ){
      alert( "document.info.download.length  undefined";
      return;
    }
    alert( "document.info.download.length="+document.info.download.length );
  
  }

</script>;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP