【问题标题】:Javascript append input with "multiple" attributeJavascript使用“多个”属性附加输入
【发布时间】:2020-07-12 12:20:25
【问题描述】:

当输入具有“multiple”属性时,如何使用 javascript 附加输入的值?

<input type='hidden' name='test[]' multiple>

就像您设置普通输入 document.getElementById("myId").value = "whatever"; 的值一样,但要使用具有“多个”属性的输入

【问题讨论】:

  • 我不知道你在问什么。您的问题需要更多详细信息。我认为应该是type="file"
  • 对不起,什么? multiple 仅对 <select><input type="file"> 有效。使用 Vanilla JS,您可以设置/取消设置属性,直接分配属性的值 element.multiple=true|false
  • 多个输入仅适用于文件或电子邮件字段MSDN。但就像@Gabriel 说的你可能需要<select>
  • 是的,对不起,我的错,我在你指出之前添加了它。

标签: javascript html forms


【解决方案1】:

试试这个:


<select id="select">
    <option>...</option>
</select>

<script defer>
    document.querySelector("#select").setAttribute("multiple", "multiple")
</script>

【讨论】:

  • 我正在尝试设置输入的值,设置我的意思是追加,因为它具有“多个”属性。抱歉,如果问题含糊不清。我对其进行了编辑,希望能更好地反映这一点
【解决方案2】:

我正在尝试设置输入的值,而不是属性。通过设置,我的意思是追加,因为它是一个“多个”输入

multiple 属性应用于hidden 输入。

如果要附加到值,则读取当前值,并将其包含在新值中。

input.value = input.value + "some other string";

由于您使用了 PHP 风格的命名约定,您可能想要创建一个额外的输入:

const newInput = document.createElement("input");
newInput.name = "test[]";
newInput.type = "hidden";
newInput.value = "some other string";
input.insertAdjacentElement("afterend", newInput);

因此,提交的数据在提交后将被视为一个值数组。

【讨论】:

  • 这非常有帮助。谢谢:)
猜你喜欢
  • 1970-01-01
  • 2010-10-21
  • 2011-04-17
  • 1970-01-01
  • 2012-06-24
  • 2020-12-19
  • 2015-07-14
  • 2015-11-18
  • 2018-06-27
相关资源
最近更新 更多