一个非常有挑战的Javascript问题!!!!!!!!!!!!!!!

jd29323 2002-10-16 11:33:51
我的一个页面中有个checkbox,它可能没有,可能是一个
也可能是多个

我要在JS中判断到底有几个checkbox,应该怎么判断?

假设我的checkbox的name是chkBox,它在form1中
我用:
if(isNaN(parseInt(document.form1.chkBox.length)))
在IE6中可以作到判断它是一个还是多个

但在IE5中,如果这个页面中还没有chkBox
(因为这个chkBox是我在另一个页面用程序动态生成的),
就会报告“缺少对象”
请问我应该用什么办法判断
...全文
48 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dylanOK 2002-10-17
  • 打赏
  • 举报
回复
看来没什么挑战性嘛 :)
方工 2002-10-16
  • 打赏
  • 举报
回复
<input type="checkbox" name="chkBox">
<input type="checkbox" name="">
<input type="checkbox" name="">
<input type="checkbox" name="chkBox">

<script language="JavaScript">
<!--
var chks=document.getElementsByTagName("INPUT");
// var chks=yourform.getElementsByTagName("INPUT");
var n=0;
for(var i=0; i<chks.length;i++) if(chks[i].type=="checkbox") n++;
alert(n);
////////
if(document.getElementsByName("chkBox").length==0) //get all elements named chkBox in current document
alert("no checkbox named chkBox exists");
else alert("chkBoxs=" + document.getElementsByName("chkBox").length);
//-->
</script>
希默软件 2002-10-16
  • 打赏
  • 举报
回复
<form name=form1>
<input type=checkbox>
<input type=checkbox>
<form>
<script>
var theobj=document.all.form1.all.tags("INPUT")
var j=0
for(i=0;i<theobj.length;i++)
if(theobj[i].type=="checkbox")
j++
alert("Total number is:"+j)
</script>
qiushuiwuhen 2002-10-16
  • 打赏
  • 举报
回复
document.getElementsByName("chkBox").length);
qiushuiwuhen 2002-10-16
  • 打赏
  • 举报
回复
try{
alert(frm.document.getElementsByName("chkBox").length);
}catch(e){alert("还没装载"+frm);}
ssm1226 2002-10-16
  • 打赏
  • 举报
回复
<form name=frm>
<input type=checkbox name=test value=1>

</form>
<script>
var bb=frm.test;
var bln=((bb.length=='undefined')?true:false);
alert(bln);
</script>
ssm1226 2002-10-16
  • 打赏
  • 举报
回复
<form name=frm>
<input type=checkbox name=test>
</form>
<script>
var bb=frm.test;
var bln=(bb.length==undefined)?true:false;
alert(bln)
</script>
jd29323 2002-10-16
  • 打赏
  • 举报
回复
拜托,你在IE5里实验过吗?

我问的是在IE5中怎么处理
孟子E章 2002-10-16
  • 打赏
  • 举报
回复
if(document.form1.hpid_array)
{
if(document.form1.hpid_array.length)
{
//.....
}
else
{
//.....
}
}
else
alert("不存在")
jd29323 2002-10-16
  • 打赏
  • 举报
回复
这样不行

我的这个FORM里有很多不同名字的checkbox、radio、hidden 如:
<form name=form1>
<input type="radio" name ="hpid_array" value="xx">
<input type="checkbox" name ="hp_uuid_array" value="xx">
<input type="hidden" name ="hs_name_103" value="xx">
<input type="hidden" name ="hs_addr_104" value="xx">
</form>
现在的情况是,hpid_array,hp_uuid_array,hs_name_103,hs_addr_104
都可能只有一个值(不是数组),有多个值(是数组)
也可能不存在

所以,在JS中要对这些变量进行操作(取它们的值),必须先判断
它是否存在,如果存在,那么它是单值还是个数组
本来是我是这样做的:
if(typeof(document.form1.hpid_array)=='undefined')//不存在
return false;
if(isNaN(parseInt(document.form1.hpid_array.length)))//单值
{...........}
else //是数组
{...........}

这在IE6中工作的很好,但在IE5中确报告
if(isNaN(parseInt(document.form1.hpid_array.length))
这一行缺少对象

我应该怎么办?????
linhaibo 2002-10-16
  • 打赏
  • 举报
回复
如果是一组 CheckBox ,还要再加上一个 name 的验证..。

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧