2010-12-07 10 views
133

Comment puis-je accéder à l'attribut <input type="hidden"> de la balise value à l'aide de jQuery?jQuery entrée valeur masquée

+2

double possible de [valeur Obtenez du champ caché - jQuery] (https://stackoverflow.com/ questions/3091374/get-value-from-hidden-field-jquery) – EvilDr

Répondre

261

Vous pouvez accéder aux valeurs de champs cachés avec val(), comme vous pouvez le faire sur tout autre élément d'entrée:

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

Les tout cela veut dire la même chose dans cet exemple.

+10

alert ($ ('entrée [type = caché] #foo') .val()); Cela trouve la variable cachée avec id foo. Cette recherche est plus spécifique. –

+4

Alerte @MohammedRafeeq ($ ('# foo'). Val()); Est-ce juste comme spécifique. Parce qu'un identifiant est unique dans le DOM. Par conséquent, il trouvera toujours un seul élément si le code HTML suit les normes. Sauf si vous utilisez l'instruction pour vérifier si l'élément est caché ou non. –

+1

qu'est-ce qui est plus rapide? $ ('# foo') ou $ ('input: hidden # foo')? Je soupçonne la seconde depuis que plus d'informations de recherche ont été données, mais je ne sais pas comment cela est mis en œuvre, donc je ne sais pas si mon sentiment est correct. EDIT: ok j'ai ma réponse grâce au commentaire d'Abel, id seulement, ie #foo est plus rapide. – comte

2

Il n'y a rien de spécial <input type="hidden">:

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

Il y a un sélecteur jQuery pour que:

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

vous donnera tous les champs d'entrée cachés et filtre par ceux qui ont un type="" spécifique.

3

Si vous souhaitez sélectionner un champ caché individuel, vous pouvez le sélectionner à travers les différents sélecteurs de jQuery:

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


$("#hiddenField").val(); //by id 
$("[name='hiddenField']").val(); // by name 
$(".hiddenField").val(); // by class 
+0

L'entrée masquée n'a pas de propriété de classe de style –

2

Pour obtenir la valeur, utilisez:

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

Pour définir la valeur, utilisez:

$('input[type=hidden]').attr('value',newValue); 
2

Si vous avez un asp.net HiddenField vous devez:

Pour accéder à HiddenField Valeur:

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

Pour définir HiddenFieldValue

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

Attention si vous souhaitez récupérer une valeur booléenne à partir d'un champ caché!

Par exemple:

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

(Une entrée comme celui-ci sera rendu par ASP MVC si vous utilisez @Html.HiddenFor(m => m.SomeBoolean).)

Puis le suivant retourne une chaîne 'False', pas un booléen JS!

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

Si vous voulez utiliser le booléen pour une certaine logique, utilisez ce qui suit à la place:

var aBool = $('#SomeBoolean').val() === 'True'; 
if (aBool) { /* ...*/ } 
Questions connexes