2011-04-09 101 views
3

你好
我有一个JS函数说验证的复选框

for(var i = 0; i < document.calDailyBlock.selFilCheckBox.length; i++) 
{ 
    if(document.calDailyBlock.selFilCheckBox[i].checked) 
    { 
    filteredInitId += document.calDailyBlock.selFilCheckBox[i].value + ","; 
    alert(filteredInitId); 
    isProjCheck = true; 
    } 
} 
document.calDailyBlock.filteredComId.value = filteredInitId; 

当有页面上没有复选框,我试着点击过滤器按钮调用该函数,我收到一个错误“的文件.calDailyBlock.selFilCheckBox.length'为空或不是对象“

有什么简单的东西可以添加到这个函数中吗?

任何人都可以帮助我如何检查一页上只有一个复选框?

在此先感谢

回答

1

,以避免错误使用,如果:

if(document.calDailyBlock.selFilCheckBox) { 
    for(var i = 0; i < document.calDailyBlock.selFilCheckBox.length; i++) 
    { … } 
} 
4

我想你是依靠某些浏览器的一个相当模糊的(非官方)功能,它可以让你得到一个元素从文档中就好像它是属性一样。换句话说,您正在:

document.calDailyBlock 

这是在搜索变量calDailyBlock的文档。相反,你应该使用标准化getElementById

document.getElementById("calDailyBlock") 

,并使用相同的方法用于获取selFilCheckBox

如果找不到calDailyBlockselFilCheckBox,将返回空值。在你给他们打电话length(它给出了这个错误)之前,你应该检查一下,看看你是否返回null,然后(我想)在默默地失败(不要做任何事情)。