2013-09-25 2 views
3

У меня есть форма, которая настроена так, что есть кнопка добавления, поэтому мой пользователь может сразу отправить нескольких пользователей на сайт.Javascript получить значения массива формы

В первой формы имеет вход, чтобы заполнить лица назвать один пример ниже

<input type="text" name="name[]" value="Name" /> 

Если нажать на кнопку добавить еще один добавляется, так что я остался с следующим

<input type="text" name="name[]" value="Name" /> 
<input type="text" name="name[]" value="Name" /> 

Затем, когда они попали представить, что я пытаюсь получить значение каждого имени в JavaScript, и цикл через них я попытался это, но он не работает

var inputs = document.getElementById('formIDhere').getElementsByTagName('name'); 
alert(inputs.length); 

Я никогда не получить уведомление, и если я просто настроить цикл вроде этого

for(int i=0; i<inputs.length; i++) 

Ничего не происходит, любая помощь на перекручивание через значение имени [] в JavaScript будет весьма признателен

+0

Почему вы не показывать код для кнопки отправки? – epascarello

+0

try name = "name" – MichaC

+0

FYI: getElementsByTagName ("name") ищет Duncan

ответ

3

Я думаю, вы могли бы попробовать:

var inputs = document.querySelectorAll("#formIDHere input[name='name[]']"); 
alert(inputs.length); 
for (i = 0; i < inputs.length; i++) { 
    // your code here 
} 
+0

работает по мере необходимости благодаря тонне! – user577732

0

I думаю, вы можете использовать document.getElementById('formIDhere').elements.name.

Он даст вам массив со всеми значениями.

0

ваша ошибка использует getElementsByTagName, который просит тег под названием <name>, и, конечно, вы не имеете его, попробуйте установить класс для ввода, например, и принести его с помощью JQuery $('className'), который, несомненно, получите результат правильно, или используя дом вы все еще можете использовать document.getElementById('form').elements.name, но все же этот способ не может быть кросс-браузер безопасным, если тщательно не тестировался

0

getElementsByTagName возвращает массив Ele Имя тега whoose указано в аргументе. В html нет имени элемента whoose тега name.

name - это атрибут, присвоенный элементам html. Чтобы получить элементы на основе имени вы можете использовать

var ele=document.getElementsByName('whatevername'); 

ele будет содержать массив элементов, чье имя указано. Затем вы можете использовать свой цикл для повторения каждого элемента.

0

это то, что элементы формы для

var inputs = document.getElementById('formIDhere').elements["name[]"]; 
alert(inputs.length); 
for (i = 0; i < inputs.length; i++) { 
    // your code here 
} 
1

Простой подход:

var names=document.getElementsByName('name[]'); 

for(key=0; key < names.length; key++) { 
    alert(names[key].value); 

    //your code goes here 
} 
Смежные вопросы