Question

( agrégées dans une autre question )

Le jquery suivant 1.3.2 fonctionne code:

<input type="select" value="236434" id="ixd" name='ixd' />

<script>
console.log( $('#ixd') );
console.log( $("input[name='ixd']") );
</script>

Console indique:

  

[entrée # IxD 236434]

     

[entrée # IxD 236434]

réglage Cependant l'entrée « cachée » empêche les sélecteurs de travail. Des indices?

<input type="hidden" value="236434" id="ixd" name='ixd' />

<script>
console.log( $('#ixd') );
console.log( $("input[name='ixd']") );
</script>

Console indique:

  

[]

     

[]

Était-ce utile?

La solution

Je ne sais pas pourquoi ce serait un échec. Je fais la même chose au travail sur une base régulière, et il fonctionne quel que soit le formfield étant caché ou non.

Peut-être essayer ceci:

<input type="hidden" value="236434" id="ixd" name='ixd' />

<script>
    console.log($("#xid").val())
</script>

Cela vous obtenir la valeur du champ caché. Pour obtenir la valeur d'un champ de formulaire, la méthode .val() doit être utilisé.

Autres conseils

<input type="select" value="236434" id="ixd" name='ixd' />

Est-ce même balisage valide?

Il semble que la sélection d'une entrée visible récupère la valeur de celui-ci, même sans appeler explicitement .val(), alors que la sélection d'un autre caché ne:

Essayez:

console.log( $('#ixd').val() );
console.log( $("input[name='ixd'][type='hidden']") );

et

console.log( $("input[name='ixd']").val() );

Cela peut être plus d'un problème avec la console. J'ai couru un test et il semble saisir encore l'instance de l'élément. Je ne peux pas dire exactement ce que vous essayez de faire ici.

Si vous essayez juste de valider wether l'objet a été trouvé vérifier la propriété de longueur

console.log( $('#xid').length );

Si vous essayez d'obtenir la valeur du champ puis utilisez la méthode val

console.log( $('#xid').val() );

Enfin, il est possible que dans votre solution DOM n'a pas encore complètement chargée. Assurez-vous envelopper votre logique dans un appel document.ready.

$(document).ready(function() {
    console.log( $('#xid').val() );
});

Si vous faites cela dans ASP.Net, vérifiez l'ID de votre commande lors de l'exécution via l'option Afficher la source dans votre navigateur. Vous trouverez peut-être que votre ID de contrôle n'est pas ce que vous attendez qu'il soit si, par exemple, votre contrôle est déclaré dans une page de contenu. Dans ce cas, il serait attribué une carte d'identité qui est entraînée par sa page maître. Plutôt que de coder en dur l'ID dans votre jQuery vous pouvez vous référer à sa propriété ClientID en utilisant la syntaxe en ligne ASP.Net qui aussi vous protéger contre toute modification du maître ou du contenu hiérarchie de contrôle de la page.

...

$('#<%= myHiddenControl.ClientID %>').val();

... serait un meilleur choix que ...

$('#ctl00_ContentPlaceHolder1_ctl00_ContentPlaceHolder1_myHiddenControl').val();

... bien qu'ils travaillent tous les deux.

J'ai eu problème où faire $('#field_id').val() n'a pas retourné aucune valeur parce que les champs cachés ont été imbriqués (body > div > form > ul > li > p). Se déplacer hors de ul résolu le problème.

Si aucun des travaux ci-dessus essayer

$('#xid').attr('value');
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top