2012-06-12 35 views
2

我知道我必須在這裏做一些愚蠢的事情。只需要第二組眼睛。長度屬性不被捕獲

如果我的單選框已被檢查驗證:

<input type="radio" name="cont_amt" id="cont_amt" value="1000"> 

    //alert(theForm.cont_amt.value); 
    var con_optLength = theForm.cont_amt.length; 
    var chkd=""; 

    for(var i = 0; i < con_optLength; i++) { 
     if(theForm.cont_amt[i].checked) { 
      chkd=theForm.cont_amt[i].value; 
     } 
    } 


if (chkd == "") { 
     reason += "\t" + "Must select a contribution option" + "\n"; 
    } 

我總是打我的警惕,因爲我length永遠是不確定的。

+0

適合我。 http://jsfiddle.net/vpGHd/假設你有更多的同名無線電。 – 2012-06-12 13:03:12

+0

我在使用一些舊的代碼,我有更多的單選按鈕。對於這個頁面,我只有一個具有相同名稱的頁面。 – etm124

+1

@ emt124:在這種情況下,不需要循環。 – 2012-06-12 13:07:04

回答

0

您應該使用document.getElementsByName

var con = document.getElementsByName('cont_amt'); 
    var chkd = null; 

    for(var i = 0; i < con.length; i++) { 
     if(con[i].checked) { 
      chkd = con[i].value; 
     } 
    } 

而這裏是一個nice jsFiddle Demo看到我不說謊。

注意:我懷疑你這樣做,因爲你有幾個這樣的單選按鈕。如果是這種情況,則應刪除ID屬性,因爲它在文檔中必須是唯一的。

0

這是因爲theForm.cont_amt是一個對象而不是數組。

你可以看到它在行動here

1

這是因爲您只有一個名爲「cont_amt」的單選按鈕。爲屬性「length」添加至少一個以變得可用。

相關問題