2009-03-24 12 views
6

tengo que campos de entrada ocultos tales como:¿Cómo recuperar un valor de <input> usando jQuery?

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

que me gustaría recuperar tanto de esos valores y POST al servidor usando jQuery. ¿Cómo se usa el motor de selector jQuery para captar esos valores?

Respuesta

24

Como "foo" y " foo1" son el nombre de ustedes, campos de entrada, usted no será capaz de utilizar el selector de ID de jQuery (#), pero tendrá que utilizar en su lugar el selector de atributos:

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

Esa no es la mejor opción, en cuanto a rendimiento. Se podría establecer mejor la identificación de sus campos de entrada y utiliza el selector de ID (por ejemplo $ ("# foo")) o al menos proporcionar un contexto para el selector de atributos:

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

gritos ... es cierto. Debería eliminar mi respuesta, – Clyde

+0

Es posible que no funcionen tan bien como $ ('# foo'), pero a menos que sea un problema, no se preocupe. Optimización prematura y todo eso. –

+0

@Andrew, tiene toda la razón, los usuarios no notarían la diferencia en la mayoría de los casos. Es más una buena práctica, especialmente considerando que el nombre puede no ser único. – ybo

5

Debe usar id's o clases para acelerar el proceso de valor.

identificador de versión (suponiendo que la entrada tiene id = 'foo')

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

Clases versión (suponiendo que la entrada tiene class = 'foo')

var value1 = $('.foo').val(); 
Cuestiones relacionadas