Risposte:
Puoi accedere ai valori dei campi nascosti con val()
, proprio come puoi fare con qualsiasi altro elemento di input:
<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());
Tutti significano la stessa cosa in questo esempio.
C'è un selettore jQuery per questo:
// 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' );
Ti darà tutti i campi di input nascosti e filtrerà quelli con uno specifico type=""
.
Il modo più efficiente è tramite ID.
$("#foo").val(); //by id
Puoi leggere di più qui:
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
Per ottenere valore, utilizzare:
$.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);
Per impostare il valore, utilizzare:
$('input[type=hidden]').attr('value',newValue);
Non c'è niente di speciale in <input type="hidden">
:
$('input[type="hidden"]').val()
Se si desidera selezionare un singolo campo nascosto, è possibile selezionarlo tramite i diversi selettori di jQuery:
<input type="hidden" id="hiddenField" name="hiddenField" class="hiddenField"/>
$("#hiddenField").val(); //by id
$("[name='hiddenField']").val(); // by name
$(".hiddenField").val(); // by class
Se hai un HiddenField asp.net devi:
Per accedere a HiddenField Value:
$('#<%=HF.ClientID%>').val() // HF = your hiddenfield ID
Per impostare HiddenFieldValue
$('#<%=HF.ClientID%>').val('some value') // HF = your hiddenfield ID
Fai attenzione se vuoi recuperare un valore booleano da un campo nascosto!
Per esempio:
<input type="hidden" id="SomeBoolean" value="False"/>
(Un input come questo verrà visualizzato da ASP MVC se si utilizza @Html.HiddenFor(m => m.SomeBoolean)
.)
Quindi quanto segue restituirà una stringa 'False'
, non un booleano JS!
var notABool = $('#SomeBoolean').val();
Se si desidera utilizzare il valore booleano per un po 'di logica, utilizzare invece quanto segue:
var aBool = $('#SomeBoolean').val() === 'True';
if (aBool) { /* ...*/ }
Il modo più universale è prendere valore per nome. Non importa se il suo input o selezionare il tipo di elemento del modulo.
var value = $('[name="foo"]');