Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将动态添加的InputBox的值添加到数组中?_Javascript_Arrays - Fatal编程技术网

Javascript 如何将动态添加的InputBox的值添加到数组中?

Javascript 如何将动态添加的InputBox的值添加到数组中?,javascript,arrays,Javascript,Arrays,我最多创建8个动态输入框,每次单击一个。我想将它们的值存储在数组中,如果我添加了4个按钮,则将4个值存储到数组中并在警报中显示;如果我添加了5个值,则将5个值存储到数组中并在警报中显示。到目前为止,我所做的是: Javascript: function show(){ var data = []; for(fieldValue=1;fieldValue<=8;fieldValue++){ var input = document.getElementById('input

我最多创建8个动态输入框,每次单击一个。我想将它们的值存储在数组中,如果我添加了4个按钮,则将4个值存储到数组中并在警报中显示;如果我添加了5个值,则将5个值存储到数组中并在警报中显示。到目前为止,我所做的是:

Javascript:

function show(){
  var data = [];
  for(fieldValue=1;fieldValue<=8;fieldValue++){
    var input = document.getElementById('input - '+fieldValue).value;
    data.push(input);
  }
 alert(data);
}

它将ID设置为input-1、input-2等。。提前谢谢。

您正在从1循环到8

function show() {
  var data = [];
  for (fieldValue = 1; fieldValue <= 8; fieldValue++) {
    var input = document.getElementById('input - ' + fieldValue);
    if (inpt) {
      input = input.value;
      data.push(input);
    }

  }
  alert(data);
}
如果您添加的输入框少于8个,比如说5个,那么document.getElementById'input-'+fieldValue在某个时候将返回null,因为文档中不会有id为'input-6'的元素

为了保护代码的安全,在尝试检索数据之前,必须检查document.getElementById'input-'+fieldValue是否不为null

function show(){
  var data = [];
  for(fieldValue=1;fieldValue<=8;fieldValue++){
    var input = document.getElementById('input - '+fieldValue);
    if (input != null) 
       data.push(input.value);
  }
 alert(data);
}

正如人们提到的,即使没有8个输入元素,您也要迭代8次。使用类选择器和jQuery并对共享该类的每个元素进行迭代会容易得多

功能表演{ var数据=[]; $.each$'.input item',functionkey,val{ data.push$val.val; } 警报数据; } 点击我
我不知道您显示的是工作代码还是中断代码,但无论哪种方式,您都需要提供一个完整的示例来显示HTML。创建输入时,添加一个唯一的类,然后使用document.getElementsByClassNameuniqueClassName和in-loop获取元素,检查返回元素的长度,而不是8在循环中使用8,您应该检查添加了多少输入。如果将添加的元素设置为特定类,则可以使用document.getElementsByClassname直接获取输入列表。@spanky它有效且正在运行。另外,如果问题只存在于一个函数中,则无需添加完整的代码:Javascript是我的项目的基本要求,感谢您的回答:@HaseebHassy很高兴提供帮助!
function show(){
  var data = [];
  for(fieldValue=1;fieldValue<=8;fieldValue++){
    var input = document.getElementById('input - '+fieldValue);
    if (input != null) 
       data.push(input.value);
  }
 alert(data);
}