如何在每次用户填充3个输入时在数组内自动创建对象

how to create automatically an object inside an array each time the user fill 3 inputs?

本文关键字:数组 创建对象 输入 3个 用户 填充      更新时间:2024-05-01

每次用户填写名字和姓氏以及地址输入时,脚本都会采用这些值,并将主题放入第一个对象中,该对象将包含3个属性

    FirstName = FirstName.value;
    LastName = LastName.value;
    Adress = Adress.value;

当用户想要添加一个新联系人时,这些新值不能取代它们已经在第一个对象中的旧值,新值必须在一个新对象上,并且每次用户填写3个输入时都要继续这样做

所以我的问题是如何做到这一点?

您可以使用全局阵列

var数据=[];

一旦值发生更改,就将值分配给该数组。

在提交时,请检查数组中已存在的值。

function ExistsInarray(array, value) {
    for(var i=0;i<array.length;i++) {
        if(array[i][0].id === value)
      {
       value already there...
      }
      else
       return true;
    }

您可以在每次用户按下提交按钮时创建Person的新实例并将其存储在数组中,但您仍然需要将其存储到的某个位置

var Person = function(firstName, lastName, adress) {
  this.firstName = firstName;
  this.lastName = lastName;
  this.adress = adress;
}
var persons = [];
$('#submit').click(function() {
  var first_name = $('#firstName').val();
  var last_name = $('#lastName').val();
  var adress = $('#adress').val();
  if (first_name != '' && last_name != '' && adress != '') {
    persons.push(new Person(first_name, last_name, adress));
  }
  console.log(persons);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="firstName">
<input type="text" id="lastName">
<input type="text" id="adress">
<input type="submit" id="submit" value="Submit">

您可以使用一个JS脚本来保存所有这些,但如果您想在之后保存数据,则需要实现一个持久性提供程序(服务器端的文件、数据库等):

var array[];

重要的是,这个数组不应该在下面的代码中实例化,而是在全局范围内使用它,以使它更容易。

然后声明在启动时执行的函数,以及:

var button = $('#buttonAddContact');
button.addEventListener('click', function(){
    var obj = new Contact(); // fill it now
    array.append(obj);
});

这是伪代码,但它会给你算法。在该数组中,用户将为当前会话添加所有联系人。

(例如,如果不使用jQuery,则必须对其进行调整)