0

すべてのフォーム配列値をJS配列に取得するのに問題があり、1つの値が正常に機能しています:

          var el = document.getElementsByName('p[]');
          for (var i = 0, j = el.length; i < j; i++) {
          var elem = el[i];
          alert(elem.value);
          }

しかし、さらに追加しようとすると、機能しません:

var el = document.getElementsByName('p[]', 'k[]', 'ka[]', 's[]');
              for (var i = 0, j = el.length; i < j; i++) {
              var elem = el[i];
                      alert(elem.value);
                    $.post("test.php", { 'p': [elem.value] });
                      }

これが私のフォームです:フォームは動的です(ボタンをクリックすると、これらの4つのフィールドで新しい行を追加できます:

   <form name="form">
    <input type="text" name="p[]" id=name" />
    <input type="text" name="k[]" id="quant" size="3" />
    <input type="text" name="ka[]" id="price" size="10" />
    <input type="text" name="s[]" id="sum" size="10" disabled="disabled"/><br />
    </form>
4

2 に答える 2

1

メソッド get elementsByName は 1 つの文字列引数を取るため、次のようにする必要があります。

var listOfElements = ['p[]', 'k[]', 'ka[]', 's[]'];
for (var i=0; i<listOfElements.length; i++) {
   var el = document.getElementsByName(listOfElements[i]);
   ...
}
于 2012-07-10T21:00:45.477 に答える