Je veux définir une option qui a été sélectionnée précédemment pour être affichée lors du chargement de la page. Je l'ai essayé avec le code suivant:
$("#gate").val('Gateway 2');
avec
<select id="gate">
<option value='null'>- choose -</option>
<option value='gateway_1'>Gateway 1</option>
<option value='gateway_2'>Gateway 2</option>
</select>
Mais cela ne fonctionne pas. Des idées?
Réponses:
Cela devrait certainement fonctionner. Voici une démo . Assurez-vous d'avoir placé votre code dans
$(document).ready
:la source
'Gateway 2'
passé à la fonctionval
correspond à la valeur de l'value
attribut de l'option de sélection, pas à son texte. Voir ce JSFiddle , qui est une version très légèrement éditée de la démo de Darin, pour un exemple de ce que je veux dire.la source
$('#gate').val('Gateway 2').prop('selected', true);
la source
$('#your-select-box-id :nth-child(2)').prop('selected', true)
qui fonctionne, avec mise à jour visuelle de la drop-box.J'ai trouvé que l'utilisation de la méthode jQuery .val () avait un inconvénient important.
Si cette case de sélection (ou tout autre objet d'entrée) est dans un formulaire et qu'un bouton de réinitialisation est utilisé dans le formulaire, lorsque vous cliquez sur le bouton de réinitialisation, la valeur définie sera effacée et ne sera pas réinitialisée à la valeur de début comme vous vous y attendez.
Cela semble fonctionner le mieux pour moi.
Pour les cases Select
Pour les entrées de texte
Pour les entrées de zone de texte
Pour les cases à cocher
Pour les boutons radio
la source
la source
Ça marche bien. Voir ce violon: http://jsfiddle.net/kveAL/
Il est possible que vous ayez besoin de déclarer votre jQuery dans un
$(document).ready()
gestionnaire?De plus, pourriez-vous avoir deux éléments qui ont le même ID?
la source
Ce serait une autre option:
la source
J'ai eu le même problème.
Solution: ajoutez un rafraîchissement.
la source
Je sais qu'il y a plusieurs itérations de réponses, mais maintenant cela ne nécessite pas jquery ou toute autre bibliothèque externe et peut être accompli assez facilement simplement avec ce qui suit.
la source
Certains cas peuvent être
la source
Mon problème
J'ai eu le même problème . La seule différence avec votre code est que je chargeais la boîte de sélection via un appel ajax et dès que l'appel ajax était exécuté, j'avais défini la valeur par défaut de la boîte de sélection
La solution
la source
J'ai eu un problème où la valeur n'était pas définie en raison d'une erreur de syntaxe avant l'appel.
Vérifiez les erreurs de syntaxe avant l'appel.
la source
la source
la source
.attr()
plus, c'est la mauvaise façon de le faire depuis bien avant que cette réponse ne soit publiée.Ajout à @icksde et @Korah (merci aux deux!)
Lors de la construction des options avec AJAX, le document.ready peut être déclenché avant la construction de la liste, donc
Ça ne marche pas
Cela ne
Un délai d'attente fonctionne, mais comme @icksde le dit, il est fragile (j'avais en fait besoin de 20 ms au lieu de 10 ms). Il vaut mieux l'adapter à l'intérieur de la fonction AJAX comme ceci:
la source