Respostas:
Você pode acessar os valores dos campos ocultos com val()
, assim como em qualquer outro 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 significam a mesma coisa neste exemplo.
Existe um seletor jQuery para isso:
// 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' );
Irá fornecer todos os campos de entrada ocultos e filtrar por aqueles com um específico type=""
.
A maneira mais eficiente é por ID.
$("#foo").val(); //by id
Você pode ler mais aqui:
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 obter valor, use:
$.each($('input'),function(i,val){
if($(this).attr("type")=="hidden"){
var valueOfHidFiled=$(this).val();
alert(valueOfHidFiled);
}
});
ou:
var valueOfHidFiled=$('input[type=hidden]').val();
alert(valueOfHidFiled);
Para definir valor, use:
$('input[type=hidden]').attr('value',newValue);
Não há nada de especial em <input type="hidden">
:
$('input[type="hidden"]').val()
Se você deseja selecionar um campo oculto individual, é possível selecioná-lo através dos diferentes seletores do jQuery:
<input type="hidden" id="hiddenField" name="hiddenField" class="hiddenField"/>
$("#hiddenField").val(); //by id
$("[name='hiddenField']").val(); // by name
$(".hiddenField").val(); // by class
Se você possui um HiddenField do asp.net, precisa:
Para acessar o valor HiddenField:
$('#<%=HF.ClientID%>').val() // HF = your hiddenfield ID
Para definir HiddenFieldValue
$('#<%=HF.ClientID%>').val('some value') // HF = your hiddenfield ID
Cuidado se você deseja recuperar um valor booleano de um campo oculto!
Por exemplo:
<input type="hidden" id="SomeBoolean" value="False"/>
(Uma entrada como essa será renderizada pelo ASP MVC, se você usar @Html.HiddenFor(m => m.SomeBoolean)
.)
Em seguida, o seguinte retornará uma string 'False'
, não um JS booleano!
var notABool = $('#SomeBoolean').val();
Se você deseja usar o booleano para alguma lógica, use o seguinte:
var aBool = $('#SomeBoolean').val() === 'True';
if (aBool) { /* ...*/ }
A maneira mais universal é valorizar o nome. Não importa se sua entrada ou selecione o tipo de elemento do formulário.
var value = $('[name="foo"]');