2014-10-18 174 views
-4

我在html中创建了一个表单,它接收用户数据。然后我使用javascript将数据保存到数组中。下面是我的代码:Javascript阵列推送功能

function test(){ 
    var fName = document.getElementById('myName').value; 

     var test = ["dataOne"]; 
     test.push("dataTwo"); 
     test.push("dataThree"); 

     test.push(fName); 
     } 

问题: DataOne,dataTwo和dataThree在下面的索引数组0,1,2举行。现在,用户通过表单输入的数据被保存到一个名为“fName”的变量中,然后该变量被推入数组中。

当我将变量推入数组中时,它保存在数组中的索引3处。每次用户输入一些数据时,数据都保存在索引3中。我希望将下一个数据保存在索引4和索引5中,依此类推。每个用户提交应该在一个新的索引。目前,如果用户提交一个形式中,阵列将看起来像这样:

用户1:

[dataOne,dataTwo,dataThree,用户1输入]

如果第二用户提交一个表单:

用户2:

[dataOne,dataTwo,dataThree,用户2输入]

用户1输入已超过由用户输入2写入。

任何人都可以帮忙。 在此先感谢。

+0

你的头衔的确与真正的问题无关。 – jfriend00 2014-10-18 23:07:54

+0

你什么时候打电话测试功能? – 2014-10-18 23:07:55

+0

你已经问过这个问题了......这个版本比第一个提供的“提交表单”的含义更少。 – Quentin 2014-10-18 23:08:36

回答

1

问题是每次调用函数时都要重新声明/覆盖数组。尝试这样的:

var test = ["dataOne"]; //\ 
test.push("dataTwo"); //>which equals var test = ["dataOne", "dataTwo", "dataThree"] 
test.push("dataThree"); /// 

function func(){ 
    var fName = document.getElementById('myName').value; 
    test.push(fName); 
} 

这样每个新的函数调用推另一个字符串到数组。

另请注意,我必须更改函数名称,因为并非所有东西都可以称为test(数组和函数)。