【问题标题】:Javascript set value for Form obeject Array表单对象数组的 Javascript 设置值
【发布时间】:2017-04-04 13:51:41
【问题描述】:

我希望将数据添加到一个数组形式的对象中。

这很好用:

<input type="text" name="object" value="">
<script>document.form.object.value = "value";</script>

但是当对象是一个数组时它就不起作用了:

<input type="text" name="object[]" value="">
<script>document.form.object[0].value = "value";</script>

对象的值没有改变....有什么想法吗?

我想循环脚本,所以我需要创建一个数组。没有找到任何解决方案...

【问题讨论】:

  • 你有一个错字...,第二个例子你没有正确拼写 object。
  • DOM API 不会将 name="aPrice[]" 视为类似数组。那是 PHP(至少)改变了服务器端。
  • 对不起。此源代码中有错误。在源代码中,这两个名称是相同的……又名 aPrice[]。错误应该在其他地方找到
  • 如果你在循环脚本,你不需要将name属性设为数组;只需创建一个循环并每次都为表单对象分配值,例如document.form.object.value = myArray[i]

标签: javascript arrays forms


【解决方案1】:

根据example,我会使用document.form.elements['object[]'].value = "value"。否则,如果您打算拥有多个具有相同名称的表单元素(带有 object[] 的多个输入,并通过集合进行迭代,则可以使用以下内容:

var myForm = document.form;
var myControls = myForm.elements['object[]'];
for (var i = 0; i < myControls.length; i++) {
    var aControl = myControls[i];
}

提供的示例,在您的代码中,提供的名称不被视为数组。

【讨论】:

    【解决方案2】:

    属性值"object[]" 只是 JavaScript 的字符串——它不会将其解释为数组。但是,当名称中出现方括号时,您不能再在点符号中使用它,而必须写:

    document.form["object[]"].value = "value";
    <form name="form">
        <input type="text" name="object[]" value="">
    </form>

    如果您有多个带有name="object[]" 的元素,那么以上将只针对其中的第一个。要设置所有这些元素的值,您必须循环。您可以(例如)使用elements 属性和Array.from 来迭代这些元素:

    Array.from(document.form.elements["object[]"], function(elem) {
        elem.value = "value";
    });
    <form name="form">
        <input type="text" name="object[]" value="">
        <input type="text" name="object[]" value="">
    </form>

    对于那些使用 IE 的用户:将 Array.from 替换为 [].map.call

    【讨论】:

    • 万岁!欢呼!经过 5 小时的尝试、反复试验:这个解决方案效果很好!非常感谢!!!!
    • 仅供参考,您的第二个 sn-p 在 IE11 中生成错误:"Object doesn't support property or method 'from'"
    • IE?那还存在!? :P
    • 对于那些使用 IE(Edge 有什么问题?):将 Array.from 替换为 [].map.call
    猜你喜欢
    • 2015-07-17
    • 2019-09-07
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多