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.


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="".


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);

4

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

$('input[type="hidden"]').val()

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

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

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) { /* ...*/ }

-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"]');
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.