Javascript:获取所有表单输入值作为数组

标签 javascript html forms

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

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

我的问题是我无法弄清楚如何让一个提交按钮将所有值存储到一个数组中,例如 [[1,1,1,1,1],[2,2,2,2, 2]等]。

一旦我能弄清楚这一点,我应该能够自己输出这些值。最终目标是使用这些值在另一个页面上多次显示列表。我更愿意将其完全保留在 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;
}
input{
    display: block;
}
<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>

最佳答案

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

[...document.forms["formBox"].getElementsByTagName("input")].map(input => input.value)

关于Javascript:获取所有表单输入值作为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58784199/

相关文章:

javascript - 替换标点符号和双引号

html - 如何使所有 Contact 7 字段大小相同?

javascript - 触发 onsubmit 而不使用提交按钮

javascript - 在页面重新加载中使用 $locationProvider 不起作用

javascript - 如果它为空,如何防止提交 HTML 表单的输入字段值

用于 HTML 到 Java (POJO) 转换的 Java 库

php - 联系表格 7 设置字段值与获取请求

javascript - 文本区域的验证

javascript - 不同按钮上不同类型的验证单击

javascript - Angular ui 路由器单元测试(状态到 url)