Respuestas:
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.
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=""
.
La forma más eficiente es por ID.
$("#foo").val(); //by id
Puede leer más aquí:
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Writing_efficient_CSS
https://developers.google.com/speed/docs/best-practices/rendering?hl=it#UseEfficientCSSSelectors
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);
No hay nada especial sobre <input type="hidden">
:
$('input[type="hidden"]').val()
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
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
¡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) { /* ...*/ }
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"]');