首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript:以数组形式获取所有表单输入值

Javascript:以数组形式获取所有表单输入值
EN

Stack Overflow用户
提问于 2019-11-10 06:44:24
回答 2查看 340关注 0票数 0

我正在尝试让NumberBox的onEnter()函数能够动态更改formBox。

如果有人输入3作为输入值,我需要它显示3个表单和确切的输入框。我知道如何从输入框中获取值,并在下面显示表单的数量。

我的问题是我不知道如何让一个提交按钮将所有的值存储到一个数组中,比如[1,1,1,1,1,2,2,2,2,2,等等]。

一旦我弄清楚了这一点,我应该能够自己输出这些值。最终目标是使用这些值在另一个页面上多次显示列表。我更喜欢将其完全保留在Javascript中。我相信这是可以做到的,但我遇到了困难,需要一些帮助。

代码语言:javascript
运行
复制
function clickMe() {
  var input1 = document.forms["formBox"]["info1"].value;
  var input2 = document.forms["formBox"]["info2"].value;
  var input3 = document.forms["formBox"]["info3"].value;
  var input4 = document.forms["formBox"]["info4"].value;
  var input5 = document.forms["formBox"]["info5"].value;
  var inputArr = [input1,input2,input3,input4,input5];

  document.getElementById("info1").innerHTML = inputArr[0];
  document.getElementById("info2").innerHTML = inputArr[1];
  document.getElementById("info3").innerHTML = inputArr[2];
  document.getElementById("info4").innerHTML = inputArr[3];
  document.getElementById("info5").innerHTML = inputArr[4];
  console.log(inputArr);
}
function onEnter() {
  var qNumber = document.getElementsByName("numberBox")[0].value;
  if(event.keyCode == 13) {
      var qID = document.getElementById("numBox");
      var submitBtn = document.getElementById("submitButton");
      var a = qNumber - 1;
      var b = 0;
      while (b < a) {
          var formClone = document.getElementById("formBox");
          var listClone = formClone.cloneNode(true);
          var text =b+2;
          listClone.id = "formBox" + text;
          console.log(listClone.id);
          document.getElementById("forms").append(listClone);
          b++;
          console.log(b);
      }
      return qID.parentNode.removeChild(qID);
  }
  return qNumber;
}
代码语言:javascript
运行
复制
input{
    display: block;
}
代码语言:javascript
运行
复制
<div id="forms">
    <span id="numBox">
    <label for="numberBox">Number of Forms</label>
    <input type="number" name="numberBox" onkeydown="onEnter()" />
    </span>
    <form id="formBox" name="formBox" action="#" onsubmit="return false;">
        <label for="info1">Input 1:</label>
        <input type="text" name="info1" />
        <label for="info2">Input 2:
        </label>
        <input type="text" name="info2" />
        <label for="info3">Input 3:
        </label>
        <input type="text" name="info3" />
        <label for="info4">Input 4:
        </label>
        <input type="text" name="info4" />
        <label for="info5">Input 5:
        </label>
        <input type="text" name="info5" />
    </form>
</div>
<input type="submit" value="Submit" id="submitButton" onclick="clickMe()" />

<div id="content">
    <span id="info1">input1</span>
    <br/>
    <span id="info2">input2</span>
    <br/>
    <span id="info3">input3</span>
    <br/>
    <span id="info4">input4</span>
    <br/>
    <span id="info5">input5</span>
</div>

EN

Stack Overflow用户

回答已采纳

发布于 2019-11-10 07:17:02

您可以查询表单中的所有输入元素,将它们的值映射到另一个数组。

代码语言:javascript
运行
复制
[...document.forms["formBox"].getElementsByTagName("input")].map(input => input.value)
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58784199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档