2014-10-18 2 views
-4

Я создал форму в html, которая принимает пользовательские данные. И затем я использую javascript для сохранения этих данных в массиве. Ниже мой код:Javascript array push function

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, вход user1]

Если второй пользователь отправляет форму:

пользователь 2:

[Dataone, dataTwo, dataThree, вход пользователь2]

вход пользователь1 был написан над входом пользователя 2.

Может кто-нибудь помочь. Спасибо заранее.

+0

Ваше название действительно имеет мало общего с фактическим вопросом. – jfriend00

+0

когда вы называете функцию тестирования? –

+0

Вы уже задали этот вопрос ... и эта версия имеет еще меньше информации о том, что вы подразумеваете под «отправкой формы», чем первая. – Quentin

ответ

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 (массив и функция).