0

追加ボタンをクリックして、フォームで定義された新しい同様の行を自動的に追加するコードがあります。

<html>
<body>
<form>
<input type="text" name="quantity[]" class="input_text" id="pro"/> 
</form>
</body>
</html>

quantity[]ここで、javascript functionのさまざまな値にアクセスしたいと思います。

quantity[]ID または Name 属性を使用して JavaScriptでこのさまざまな値にアクセスする方法。

  <script>
  function abc() {
      var id = document.getElementById("pro").value;
  }
  </script>
4

6 に答える 6

1

プレーンな JavaScript でこれを行う方法は、次のように、特定の名前を持つすべての要素を取得することです。

var fields = document.getElementsByName('quantity[]');

特定の値にアクセスしたい場合は、次のようにすることもできます。

console.log(fields[0].value); // foo

コードサンプル付きのjsfiddleを次に示します。

于 2013-04-05T11:30:14.133 に答える
1

このようなことができます。

html:

<form>

    <input name="p_id[]" value="0"/>
    <input name="p_id[]" value="1"/>
    <input name="p_id[]" value="2"/>

</form>

JavaScript:

var p_ids = document.forms[0].elements["p_id[]"];
alert(p_ids.length);
for (var i = 0, len = p_ids.length; i < len; i++) {
  alert(p_ids[i].value);
}
于 2013-04-05T11:33:28.407 に答える
1

HTML:

<form name="order">
    <input type="text" name="quantity[]" class="input_text" /> 
    <input type="text" name="quantity[]" class="input_text" /> 
    <input type="text" name="quantity[]" class="input_text" /> 
</form>

JS:

var elements = document.forms['order'].elements['quantity[]'];
console.log(elements[1].value); // outputs the value of the 2nd element.

デモ: http://jsfiddle.net/NDbwt/

于 2013-04-05T11:33:15.103 に答える
0

フォーム フィールドの名前に角括弧を使用すると、PHP がフォーム フィールドを配列として読み取るという事実に戸惑うかもしれません。これは PHP のトリックにすぎ[]ません。JavaScript の場合、特別な意味はなく、通常の方法で項目を読み取ることができます。

var values = [];
var fields = document.getElementsByName("quantity[]");
for (var i = 0, len = fields.length; i < len; i++) {
    values.push(fields[i].value);
}
alert("Values:\n" + values.join("\n"));

実際に見てください。

于 2013-04-05T11:36:51.737 に答える
0
$('input[name=quantity]').each(function(){
    alert($(this).val())
});
于 2013-04-05T11:30:19.813 に答える
0

最初: id はページ上で一意である必要があります。それ以外の場合、document.getElementById は常に、要求された ID を持つ最初に検出された要素を返します。

あなたの場合、次のようにすることができます:

var id = document.getElementsByName("quantity[]")[0].value;

しかし、より安全に (返された配列内のアイテムの順序が要素が追加される順序と常に同じかどうかはわかりません)、pro_0、pro_1、pro_2 などの ID を生成することです。

于 2013-04-05T11:33:02.620 に答える