【问题标题】:How to save user input from a form into JavaScript objects如何将用户输入从表单保存到 JavaScript 对象中
【发布时间】:2014-10-18 11:10:48
【问题描述】:

我是 Javascript 新手,在创建功能时遇到了一些问题。我有一个包含用户姓名和地址的 html 表单。

我想创建一个函数,当用户提交表单时,用户信息会保存到 JavaScript 对象中。

类似这样的:

Var person = {

       Name : abc,
       Address: xyz}

我能够将信息保存到一个对象中,但是每当有新人提交表单时,旧信息就会被覆盖。 是否可以为每个提交表单的用户创建一个单独的对象。

提前感谢您的帮助。

【问题讨论】:

  • “每当有新人提交表单时,旧信息就会被覆盖”。我不知道你到底是什么意思,但是读到这里,我的第一个想法是你缺少一些关于 javascript 的基本知识。
  • 我将用一个例子来解释:如果“MARK”提交了具有以下信息的表单 name = mark 和 address = London 则 person 对象中的属性包含此信息。但是,当“JAKE”提交带有 info name = jake 和 address= America 的表单时,然后属性会保存 JAKE 而不是 MARK 输入的信息。
  • 听起来你需要了解一下数组。
  • @quentin 我把用户提交的数据保存到一个变量中,然后将变量推送到一个数组中。像这样array.push(userName);但这并不能解决我的问题
  • @user2190986 — 它解决了您描述的问题。您需要提供更完整的问题。

标签: javascript object


【解决方案1】:
var a = [];

// On some event
a.push({
  Name: newValue, 
  Address: newValue
});

【讨论】:

  • 感谢您的回复。此解决方案是否意味着名称和地址都将保存在数组中的相同索引处。这意味着如果有人第一次提交表单,名称和地址都将保存在 array[0] 中?再次感谢您
  • 这真的取决于你如何处理提交。这都是javascript,还是有点后端? (如 PHP、Ruby 等)
  • 目前所有的 JavaScript 都没有后端。我现在只想要 JavaScript。表单是 html,函数是 JavaScript。
  • 很酷,然后每次触发上述事件(考虑到该事件不会离开页面)都会用一个额外的人填充数组。第一次推送后,a[0] 将包含人员 1。第二次推送后,a[1] 将包含人员 2,依此类推。
  • 感谢您的回复。我刚刚尝试了您的解决方案并创建了一个警报函数来显示索引 0 处的数据。它会显示以下消息:[object Object] 你知道是什么原因造成的吗?
【解决方案2】:

您可以将您拥有的对象更改为一个数组,然后在填充对象的任何位置填充一个新对象并将其推送到数组中:

var people = []; // this is where var person was

function event_handler () { // assuming the object gets populated as part of an event
    people.push({
        Name: newName,
        Address: newAddress
    });
}

push 将新对象推送到数组的末尾。

【讨论】:

    猜你喜欢
    • 2015-09-28
    • 2021-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    相关资源
    最近更新 更多