2011-04-09 80 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,然後(我想)在默默地失敗(不要做任何事情)。