2013-03-13 3 views
-1

JQuery:как получить все значения из же ввода идентификатора

//value 
var user_input = []; 

$("#user_input").each(function() { 
    user_input.push($("#user_input").val()); 
}); 
//test 
user_input.push("hi"); 

Херес HTML:

City: <input id="user_input" type="text"> 
Month: <input id="user_input" type="text"> 
Year: <input id="user_input" type="text"> 

и мой var_dump только показывает:

array(2) { 
    [0]=> 
    string(0) "" 
    [1]=> 
    string(2) "hi" 
    } 

вывод должен быть:

array(4) { 
    [0]=> 
    string(0) "" 
    [1]=> 
    string(0) "" 
    [2]=> 
    string(0) "" 
    [3]=> 
    string(2) "hi" 
    } 

выглядит как функция jQuery dont loop вообще. надеюсь, что это не является незаконным, размещая слишком много вопросов здесь :))

+0

негативы сказали мне провести исследование сначала перед лишением здесь :) damn id haha ​​@Boaz –

ответ

0

Нет. Вы не можете использовать один и тот же идентификатор для нескольких элементов. Из jQuery documentation (курсив добавлен мной):

Каждый идентификатор значения должен быть использован только один раз в документе. Если более одному элементу был присвоен одинаковый идентификатор, запросы, которые используют этот ID , будут , только выберите первый согласованный элемент в DOM.

Попробуйте вместо этого классы.

+0

спасибо за объяснение. –

1

Идентификаторы являются уникальными идентификаторами внутри элемента DOM. Вы не должны использовать то же самое для нескольких элементов.

+0

ya il try using classes –

4

Изменить HTML:

City: <input class="user_input" type="text"> 
Month: <input class="user_input" type="text"> 
Year: <input class="user_input" type="text"> 

JS

$(".user_input").each(function() { 
    user_input.push($(this).val()); // you also had an error here, you should refer current field with this 
}); 

ID должен быть уникальным . Это одна из самых популярных ошибок, которые делают разработчики.

+0

Является классом '.' не' # '' user_input.push ($ (". User_input"). Val()); ' – Alvaro

+0

Спасибо, @Steve – dfsq

+0

@steve user_input.push ($ ("user_input.") вал()). это не будет работать, так как требуется только первый класс , поэтому я изменил его на $ this, и теперь он отлично работает. спасибо –

Смежные вопросы