如何将表单转换为2个数组


How to turn a form into 2 arrays

我有一个简单的表单,其中有两个文本框:一个用于人名,另一个用于姓。在页面上,你可以点击,它会在下面添加两个文本框,同样是"姓名"answers"姓氏"。所以基本上你可以添加任意多对你想要的名字和姓氏

我如何将所有这些信息转换为两个数组,一个用于"名称",另一个用于"姓氏"?

您可以在这里看到演示:http://poostudios.com/jstest2.html

代码如下:

<html>
<head>
    <script type="text/javascript" src="nutrition/jquery-3.1.1.js"></script>
    <style type="text/css">
            div{
            padding:8px;
            }
    </style>enter code here
</head>
<body>
<form action="results.php" method="get">

<script type="text/javascript">
$(document).ready(function(){
var counter = 2;
$("#addButton").click(function () {
var newTextBoxDiv = $(document.createElement('div'))
     .attr("id", 'TextBoxDiv' + counter);
newTextBoxDiv.after().html('<label>Name : </label>' +
      '<input type="text" name="textbox' + counter +
      '" id="textbox' + counter + '" value="" ><label> Surname : </label>' +
      '<input type="text" name="textbox' + counter +
      '" id="textbox' + counter + '" value="" >');

newTextBoxDiv.appendTo("#TextBoxesGroup");
counter++;
 });
 $("#removeButton").click(function () {
    counter--;
    $("#TextBoxDiv" + counter).remove();
 });

 });
</script>
<div id='TextBoxesGroup'>
<div id="TextBoxDiv1">
    <label>Name : </label><input type='textbox' id='textbox1' >
    <label>Surname : </label> <input type='textbox' id='textbox2' >
</div>
</div>
<input type='button' value='Add' id='addButton'>
<input type='button' value='Remove' id='removeButton'>
<input type="submit" value="Go">
</form>

</body>
</html>

我创建了两个数组all name =>names[], all surename =>surenames[],点击go按钮,你将看到console.log,它将显示

还用textbox创建了类名。因为类名只适应于each函数。

var names=[];
var surenames=[];
$(document).ready(function(){
var counter = 2;
$("#addButton").click(function () {
var newTextBoxDiv = $(document.createElement('div'))
     .attr("id", 'TextBoxDiv' + counter);
newTextBoxDiv.after().html('<label>Name : </label>' +
      '<input type="text" name="textbox' + counter +
      '" id="textbox1" class="textbox1" value="" ><label> Surname : </label>' +
      '<input type="text" name="textbox' + counter +
      '" id="textbox2"  class="textbox2" value="" >');
newTextBoxDiv.appendTo("#TextBoxesGroup");
counter++;
 });
 $("#removeButton").click(function () {
    counter--;
    $("#TextBoxDiv" + counter).remove();
 });
  $('input[type=submit]').click(function (e){
       e.preventDefault();
      var names = $('.textbox1').map(function (){
               return this.value
         }).get();
     var surenames = $('.textbox2').map(function (){
               return this.value
         }).get();
      
      console.log('names='+names);
     console.log('surenames='+surenames);
    
    })
 });
div{
            padding:8px;
            }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<form action="results.php" method="get">
<div id='TextBoxesGroup'>
<div id="TextBoxDiv1">
    <label>Name : </label><input type='textbox'  class="textbox1" id='textbox1' >
    <label>Surname : </label> <input type='textbox'   class="textbox2"id='textbox2' >
</div>
</div>
<input type='button' value='Add' id='addButton'>
<input type='button' value='Remove' id='removeButton'>
<input type="submit" value="Go">
</form>