jQuery acceso entrada valor oculto

Respuestas:

347

Puede acceder a los valores de los campos ocultos con val(), al igual que lo puede hacer en cualquier otro elemento de entrada:

<input type="hidden" id="foo" name="zyx" value="bar" />

alert($('input#foo').val());
alert($('input[name=zyx]').val());
alert($('input[type=hidden]').val());
alert($(':hidden#foo').val());
alert($('input:hidden[name=zyx]').val());

Todos ellos significan lo mismo en este ejemplo.

Tatu Ulmanen
fuente
11
alert ($ ('input [type = hidden] #foo'). val ()); Esto encuentra la variable oculta con id foo. Esta búsqueda es más específica.
Mohammed Rafeeq
66
Alerta @MohammedRafeeq ($ ('# foo'). Val ()); Es igual de específico. Porque una identificación es única en el DOM. Por lo tanto, siempre encontrará un solo elemento si el html sigue los estándares. A menos que use la declaración para verificar si el elemento está oculto o no.
Edwin Stoteler
1
¿Qué es más rápido? $ ('# foo') o $ ('input: hidden # foo')? Sospecho que es el segundo ya que se proporciona más información de búsqueda, pero no estoy seguro de cómo se implementa, así que no sé si mi opinión es correcta. EDITAR: ok, tengo mi respuesta gracias al comentario de Abel, solo identificación, es decir, #foo es más rápido.
Comte
15

Hay un selector jQuery para eso:

// Get all form fields that are hidden
var hidden_fields = $( this ).find( 'input:hidden' );

// Filter those which have a specific type
hidden_fields.attr( 'text' );

Le dará todos los campos de entrada ocultos y los filtrará por aquellos con un específico type="".

emperador
fuente
2
Tenga en cuenta que esto también coincidirá con elementos que tienen un valor de visualización CSS de ninguno, elementos que tienen un ancho y alto establecidos en 0 y elementos que tienen un ancestro oculto ( api.jquery.com/hidden-selector )
Daniel Liuzzi
6

Para obtener valor, use:

$.each($('input'),function(i,val){
    if($(this).attr("type")=="hidden"){
        var valueOfHidFiled=$(this).val();
        alert(valueOfHidFiled);
    }
});

o:

var valueOfHidFiled=$('input[type=hidden]').val();
alert(valueOfHidFiled);

Para establecer el valor, use:

$('input[type=hidden]').attr('value',newValue);
la raíz
fuente
4

No hay nada especial sobre <input type="hidden">:

$('input[type="hidden"]').val()
Maxim Sloyko
fuente
3

Si desea seleccionar un campo oculto individual, puede seleccionarlo a través de los diferentes selectores de jQuery:

<input type="hidden" id="hiddenField" name="hiddenField" class="hiddenField"/> 


$("#hiddenField").val(); //by id
$("[name='hiddenField']").val(); // by name
$(".hiddenField").val(); // by class
Rodrigo Longo
fuente
La entrada oculta no tiene una propiedad de clase de estilo
Philip Puthenvila
3

Si tiene un asp.net HiddenField necesita:

Para acceder al valor de HiddenField:

$('#<%=HF.ClientID%>').val()  // HF = your hiddenfield ID

Para configurar HiddenFieldValue

$('#<%=HF.ClientID%>').val('some value')   // HF = your hiddenfield ID
Bruno Ferreira
fuente
1

¡Tenga cuidado si desea recuperar un valor booleano de un campo oculto!

Por ejemplo:

<input type="hidden" id="SomeBoolean" value="False"/>

(Una entrada como esta será procesada por ASP MVC si la usa @Html.HiddenFor(m => m.SomeBoolean)).

¡Entonces lo siguiente devolverá una cadena 'False', no un booleano JS!

var notABool = $('#SomeBoolean').val();

Si desea usar el booleano para alguna lógica, use lo siguiente en su lugar:

var aBool = $('#SomeBoolean').val() === 'True';
if (aBool) { /* ...*/ }
Georg Patscheider
fuente
-1

La forma más universal es tomar valor por nombre. No importa si ingresa o selecciona el tipo de elemento de formulario.

var value = $('[name="foo"]');
Marcin Żurek
fuente