繁体   English   中英

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

[英]Javascript: Get all form input values as an array

我试图让 NumberBox 的onEnter() function 能够动态更改表单框。

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

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

一旦我弄清楚这一点,我应该能够自己 output 这些值。 最终目标是使用这些值在另一个页面上多次显示列表。 我宁愿把它完全保留在 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>

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

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

我能够遍历所有输入,感谢@mike-ezzati 和@metamorph_online 为我指明了正确的方向。 这是我这样做的方式,我意识到我需要从 onEnter() function 中获取值。 我最终使用 localStorage 来完成这个最简单的。

    function clickMe() {
        var q = localStorage.getItem("qNumber");
        console.log(q);
        var inputNow = [];
        var allInputs = [];
        var inputNow = document.getElementsByTagName("input");
        for(x=0; x < inputNow.length; x++) {
            allInputs.push(inputNow[x].value);
             console.log(allInputs);
        }
    localStorage.clear();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM