javascript - 如何将动态添加的输入框的值添加到数组中?

标签 javascript arrays

我最多创建 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);
}

如果我添加了所有 8 个输入框,它只会提醒输入框的值,否则它会显示“无法读取 null 的属性‘值’”。 编辑: 我将 ID 提供给这些输入框(部分):

  var inputField = document.createElement('INPUT');
  inputField.id = 'input - '+fieldValue;

  fieldValue++;

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

最佳答案

您正在从 1 循环到 8。

如果您添加的输入框少于 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);
}

关于javascript - 如何将动态添加的输入框的值添加到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45961039/

相关文章:

java - 程序布局 - 通过 System.in.read 创建适当大小的数组

C 数组不保留值

JavaScript继承为什么我需要同时调用fun.call和prototype = new Obj()?

javascript - 单击按钮时页面显示所有语义 UI 模态

javascript - 如何更改输入字段的语言

c - 在 C 中使用 fgetc 从文件中读取

algorithm - GNU 模拟退火

PHP 数组 - 删除空值

javascript - 按需从 lodash 加载模块

javascript - 如何查找时间重叠 - Javascript 和 moment