2009-03-24 3 views
6

Я должен скрытых полей ввода, таких как:Как получить значение от <input> с помощью jQuery?

<input name="foo" value="bar"> 
<input name="foo1" value="bar1"> 

я хотел бы получить оба этих значений и отправить их на сервер с помощью JQuery. Как использовать механизм селектора jQuery для захвата этих значений?

ответ

24

В "Foo" и " foo1 "- это имя , вы не сможете использовать селектор id jQuery (#), но вместо этого вы должны использовать селектор атрибутов:

var foo = $("[name='foo']").val(); 
var foo1 = $("[name='foo1']").val(); 

Это не лучший вариант, с точки зрения производительности. Вы бы лучше установить идентификатор ваших полей ввода и использовать селектор идентификатора (например, $ («# Foo»)) или по крайней мере обеспечить контекст для выбора атрибута:

var form = $("#myForm"); // or $("form"), or any selector matching an element containing your input fields 
var foo = $("[name='foo']", form).val(); 
var foo1 = $("[name='foo1']", form).val(); 
+0

возгласы ... правильно. Я должен удалить свой ответ ... – Clyde

+0

Они могут не работать так же, как $ ('# foo'), но если это не проблема, не беспокойтесь об этом. Преждевременная оптимизация и все такое. –

+0

@ Андрей, вы совершенно правы, пользователи не будут видеть разницу в большинстве случаев. Это больше подходит, особенно учитывая, что имя может быть не уникальным. – ybo

5

Вы должны использовать id или классы для ускорения процесса получения значения.

ID версии (предполагая, что вход имеет ID = 'Foo')

var value1 = $('#foo').val(); 

Классы версии (если предположить, что вход имеет класс = 'Foo')

var value1 = $('.foo').val(); 
Смежные вопросы