【发布时间】:2015-09-28 16:53:39
【问题描述】:
我正在自学 JS 并进行一项练习,该练习从用户那里获取输入(名字、中间名、姓氏),并将输入保存在 JS 对象中(稍后我将操作对象本身并对其进行排序,检查重复项等)
我到处寻找,找不到任何方向。我熟悉将 HTML 输入保存为变量 (var n=document.getElementById('x').value),但我对对象非常陌生。
如何将用户输入保存在对象中?我可以像“从用户输入加载对象”一样在对象中保存多个“提交”,然后在后面的步骤中对其进行操作吗?
HTML:
<body>
<label>First Name:
<input type='text' name='firstName' id='firstName' placeholder="First Name">
</label>
<br>
<br>
<label>Middle Name:
<input type='text' name='middleName' id='middleName' placeholder="Middle Name">
</label>
<br>
<br>
<label>Last Name:
<input type='text' name='lastName' id='lastName' placeholder="Last Name">
</label>
<br>
<br>
<button type="button" onclick="buildList()">Add to List</button>
</body>
我想象 JS 对象的样子,每次用户按下“添加到列表”时,程序都会在列表中添加另一个名字/中间名/姓氏。:
var list = {
firstName:"John",
middleName:"Will",
lastName:"Doe"
},
{
firstName:"Ben",
middleName:"Thomas",
lastName:"Smith"
},
{
firstName:"Brooke",
middleName:"James",
lastName:"Kanter"
};
***注意,稍后我计划计算每个名字/中间名/姓氏的频率并将其输出到屏幕上..即:'FirstName'Jason: 2, 'FirstName'Ed:3; 'MiddleName'Marie:5; 'LastName'Smith:3'
我的目标:创建一个全名列表。将它们分成三个列表:名字、中间名和姓氏。计算每个列表中名称的频率。 ---我认为使用对象是最好的方法。
【问题讨论】:
-
@jward01 是这样的吗? jsbin.com/vaxulusoma/edit?html,js,console,output
-
@bassxzero 代码不错,但是不需要在隐藏输入中保存对象,可以使用全局变量。
-
@shyammakwana.me 我知道这一点,但考虑到 OP 无法理解客户端数据的存储位置/方式,我想让它尽可能清晰/简单。不过还是谢谢
-
@bassxzero 是的!就这样!!非常感谢你写了这篇文章并向我展示了它是如何工作的。现在我只需要检查它并了解它的工作原理和原因,以便我可以像你一样掌握它!我敢肯定,一旦掌握了它的要点,它就非常简单。非常感谢!
-
@shyammakwana.me -- “隐藏输入”是什么意思?谢谢!!
标签: javascript jquery html object input