簡體   English   中英

獲取表單對象中動態輸入元素的值

[英]Get value of dynamic input element in form object

我的問題是:如何在表單中引用輸入元素的動態“名稱”?

例如,使用以下 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

如何使用i變量在 for 循環中引用qty1qty2qty3

這是一個 jsfiddle: http : //jsfiddle.net/MRzWf/

使用括號表示法

 form["qty" + i].value

演示

只需登錄為字典

http://jsfiddle.net/MRzWf/2/

 alert(form["qty"+i].value);

標准溶液

使用: 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);
        */
    }
}

問題是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);  
          }
    }
}

演示

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM