2013-01-18 55 views
-1

我有一個小問題。我認爲我做了一個很大的noob錯誤,但我找不到它。在下面的代碼中,我試圖獲取我的表單的輸入,但它也獲得了輸入以外的輸入。這是爲什麼 ?輸入外部表格被選中

這裏我的JS代碼:

function selectAll(bool){ 
    var form = document.forms['selectMailing']; 
    for(var i=1; i<=form.length; i++) { 
     form.elements['select'+i].checked = bool; 
    } 
} 

和HTML:

<input type=button value="Select All" onclick="selectAll(true)"/> 
<form method=post action="" id="selectMailing" onsubmit="return checkSelect()"> 
    <input type=checkbox name="select1" value="1" /> 
    <input type=checkbox name="select2" value="1" /> 
    <input type=submit value="Spammer" /> 
</form> 

所以,當我嘗試這一點,JS返回錯誤 '無法設置屬性 '檢查' 的未定義' 上線那裏有我的輸入按鈕。爲什麼會發生這種事?我選擇表單,只有他的元素和輸入按鈕沒有名稱可以與名稱形式混淆。

感謝您的幫助!

我知道jQuery的,但我想之前學習JavaScript,所以如果你只anwser是「使用jQuery」,請去幫忙,從「我< = form.length別人:)

回答

2

在您的表單'selectMailing'中有3個輸入。您可以通過在代碼中提供'form.length'提醒來驗證它。前兩個輸入是複選框類型,第三個輸入是submit類型。

修改的JavaScript像這樣accesing複選框類型的輸入項目(使用類型檢查)

function selectAll(bool){ 
var form = document.forms['selectMailing']; 
//alert(form.length); 
for(var i=0; i<form.length; i++){ 
    if(form.elements[i].type == "checkbox") 
    { 
      form.elements[i].checked = bool; 
     } 
    } 
} 
+0

感謝您的答覆,但我會變得瘋狂,沒有任何工作,我嘗試所有的推薦,我總是在輸入按鈕的行中出現錯誤。在Doctype之前我只有20行,所以它不能成爲名稱衝突,我可以很容易地檢查它。 – TikTaZ

+0

http://jsbin.com/utupuk/1/edit這裏是湯姆的代碼,它正常工作沒有任何錯誤。如果您有更多HTML或Javascript代碼,請編輯您的問題併發布。 – Ergec

0

刪除「=」 「

+0

感謝幫助,但它不工作:/ – TikTaZ

+0

請檢查下面湯姆的回答我的評論 – Ergec