2014-02-14 84 views
4

我的問題是:如何在表單中引用輸入元素的動態「名稱」?獲取表單對象中動態輸入元素的值

例如,用下面的HTML:

<form> 
    <input type="text" name="qty1" value="input1" /> 
    <input type="text" name="qty2" value="input2" /> 
    <input type="text" name="qty3" value="input3" /> 

    <input type="submit" value="Submit" onClick="checkVal(this.form); return false;" /> 
</form> 

的Javascript:

function checkVal(form) { 
    for (var i = 1; i <= 3; i++) { 
     alert(form.qty+i.value); // Here's where my problem is.. 
    } 
} 

以上的JavaScript不起作用。警報正在輸出NaN

如何在012循環中使用i變量來參考qty1,qty2qty3

這裏有一個的jsfiddle:http://jsfiddle.net/MRzWf/

+0

警報(的document.getElementById( '數量' +我)。值); – user3272686

回答

0

問題是form.qty+i

要訪問你應該使用index括號內數組的元素。

還有另一種方法來檢查輸入值。這是一個。

function checkVal(form) { 
    var allInputs = document.getElementsByTagName('input'); 
    for (var i = 0; i < 3; i++) { 
      if(allInputs[i].type == 'text'){ 
       alert(allInputs[i].value); 
      } 
    } 
} 

DEMO

+0

請看看已更新的答案 –

+0

謝謝。是的,現在可以工作。 :) – MElliott

+0

不客氣。 –

0

試試這個。它適用於上述問題

function checkVal(form) { 
for (var i = 0; i < 3; i++) { 
    alert(document.getElementsByTagName("input")[i].value); 
} } 
0

標準溶液

使用:form.elements[]應該在所有的瀏覽器..

function checkVal(form) { 
    for (var i = 1; i <= 3; i++) { 
     alert(form.elements["qty"+i].value); 

     /* OR using dynamic name variable 
     var ename = "qty"+i; 
     alert(form.elements[ename].value); 
     */ 
    } 
}