0

我的代码将通过单击添加按钮自动添加在表单中定义的新的类似行。

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

现在我想访问quantity[]javascript 函数中的不同值。

如何quantity[]使用它的 ID 或名称属性在 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 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 回答
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 回答
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 回答
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 回答