Habituellement, j'utilise $("#id").val()
pour renvoyer la valeur de l'option sélectionnée, mais cette fois cela ne fonctionne pas. La balise sélectionnée a l'identifiantaioConceptName
Code HTML
<label>Name</label>
<input type="text" name="name" />
<select id="aioConceptName">
<option>choose io</option>
<option>roma</option>
<option>totti</option>
</select>
javascript
jquery
html
William Kinaan
la source
la source
#aioConceptName
value
attribut sur ces<option>
s, non?$("#aioConceptName").val()
renvoiechoose io
.Réponses:
Pour les options déroulantes, vous voulez probablement quelque chose comme ceci:
La raison
val()
ne fait pas l'affaire parce que cliquer sur une option ne change pas la valeur de la liste déroulante - elle ajoute simplement la:selected
propriété à l'option sélectionnée qui est une enfant de la liste déroulante.la source
.val()
devrait fonctionner dans votre cas - vous devez avoir une erreur ailleurs.val()
pourquoi ne pas utiliservar conceptVal = $("#aioConceptName option").filter(":selected").val();
?var conceptVal = $("#aioConceptName option:selected").val()
?var mySelect = $('#mySelect');
/ * ... plus de code se produit ... * /var selectedText = mySelect.find(':selected').text();
Définissez les valeurs pour chacune des options
$('#aioConceptName').val()
n'a pas fonctionné car.val()
renvoie l'value
attribut. Pour le faire fonctionner correctement, lesvalue
attributs doivent être définis sur chaque<option>
.Vous pouvez maintenant appeler à la
$('#aioConceptName').val()
place de tout ce:selected
vaudou suggéré par d'autres.la source
$('#aioConceptName').val()
retourne null / "undefined"prompt
option spéciale<option>Please select an option</option>
. Dans mon cas, l'ajout d'un attribut de valeur vide n'a pas posé de problème,<option value="">Please...</option>
mais je pense que dans certains cas, l'absence d'attribut de valeur est logique. Mais +1 parce que votre formulation vodoo m'a fait sourire.val()
sélectionner levalue
au lieu du texte à l'intérieur duoption
? C'est à dire qu'il sélectionne1
au lieu deroma
..val()
. Si vous cherchez à manipuler / utiliser le texte, utilisez$(":selected).text()
ou définissez la valeur et le texte de la même manière.Je suis tombé sur cette question et j'ai développé une version plus concise de la réponse d'Elliot BOnneville:
ou génériquement:
Cela vous évite un appel jQuery supplémentaire, sélectionne tout en une seule fois et est plus clair (mon avis).
la source
querySelectorAll()
méthode DOM native (voir la documentation jQuery ). Donc, cela devrait être plus lent que la solution d'Eliot ..find(':selected')
car cela vous permet de l'appeler à partir d'un rappel attaché à un événement ... comme$('#aioConceptname').bind('change', function(el) { console.log ( $(el).find(':selected').text() ); });
Essayez ceci pour la valeur ...
ou ceci pour le texte ...
la source
Si vous êtes dans un contexte d'événement, dans jQuery, vous pouvez récupérer l'élément d'option sélectionné en utilisant:
$(this).find('option:selected')
comme ceci:Éditer
Comme mentionné par PossessWithin , Ma réponse répond simplement à la question: Comment sélectionner "Option" sélectionnée.
Ensuite, pour obtenir la valeur de l'option, utilisez
option.val()
.la source
$(this).find('option:selected').val()
à la fin pour obtenir la valeur de l'élément option ou$(this).find('option:selected').text()
pour obtenir le texte. :)Avez-vous envisagé d'utiliser du javascript pur et simple?
Voir aussi Obtention d'un texte / d'une valeur d'option avec JavaScript
la source
la source
Lecture de la valeur (pas du texte) d'une sélection:
Comment désactiver une sélection? dans les deux variantes, la valeur peut être modifiée en utilisant:
UNE
L'utilisateur ne peut pas interagir avec la liste déroulante. Et il ne sait pas quelles autres options pourraient exister.
B
L'utilisateur peut voir les options dans la liste déroulante mais toutes sont désactivées:
Dans ce cas,
$("#Status").val()
ne fonctionnera que pour les versions jQuery inférieures à1.9.0
. Toutes les autres variantes fonctionneront.Comment mettre à jour une sélection désactivée?
Du code derrière vous pouvez toujours mettre à jour la valeur dans votre sélection. Il est désactivé uniquement pour les utilisateurs:
Dans certains cas, vous devrez peut-être déclencher des événements:
la source
la source
:selected
.. val () ou text () ne fonctionne pas correctement sur plusieurs options de sélection, uniquement si un tableau est produit à partir de celui-ci commemap()
pourrait le faire.vous devez utiliser cette syntaxe:
Essayez donc ce code:
vous pouvez tester dans Fiddle: http://jsfiddle.net/PJT6r/9/
voir à propos de cette réponse dans ce post
la source
À l'aide de jQuery, ajoutez simplement un
change
événement et obtenez la valeur ou le texte sélectionné dans ce gestionnaire.Si vous avez besoin d'un texte sélectionné, veuillez utiliser ce code:
Ou si vous avez besoin d'une valeur sélectionnée, veuillez utiliser ce code:
la source
Utilisez également la
jQuery.val()
fonction pour sélectionner des éléments:la source
Pour ceux qui ont découvert la meilleure réponse, cela ne fonctionne pas.
Essayez d'utiliser:
Fonctionne pour moi dans des projets récents donc ça vaut le coup d'y regarder.
la source
Cela devrait fonctionner:
la source
Simple et assez simple:
Votre liste déroulante
Code Jquery pour obtenir la valeur sélectionnée
la source
Vous pouvez essayer de le déboguer de cette façon:
la source
Pour obtenir la valeur de la balise sélectionnée:
Et si vous voulez obtenir du texte, utilisez ce code:
Par exemple:
la source
Si vous souhaitez récupérer l'attribut 'value' au lieu du nœud de texte, cela fonctionnera pour vous:
la source
essayez celui-ci
la source
Imaginez le DDL comme un tableau avec des index, vous sélectionnez un index. Choisissez celui auquel vous souhaitez le configurer avec votre JS.
la source
J'espère que cela aide également à mieux comprendre et aide à essayer ci-dessous,
pour plus de détails, veuillez http://www.drtuts.com/get-value-multi-select-dropdown-without-value-attribute-using-jquery/
la source
Vous pouvez utiliser
$("#drpList").val();
la source
pour récupérer une sélection avec le même nom de classe = vous pouvez le faire, pour vérifier si une option de sélection est sélectionnée.
la source
J'ai eu le même problème et j'ai compris pourquoi cela ne fonctionnait pas sur mon cas.
La page html a été divisée en différents fragments html et j'ai trouvé que j'avais un autre champ de saisie qui porte le même identifiant du
select
, ce qui a fait que leval()
soit toujours videJ'espère que cela sauve la mise pour tous ceux qui ont un problème similaire.
la source
pour utiliser $ ("# id"). val, vous devez ajouter une valeur à l'option comme ceci:
sinon, vous pouvez utiliser
Je souhaite que cela aide ..
la source
Voici la solution simple à ce problème.
la source
var selectedaioConceptName = $('#aioConceptName option:selected').val();
vaut mieux que d'utiliser une autre trouvaille ()Votre meilleur pari avec ce type de scénario est probablement d'utiliser la méthode de changement de jQuery pour trouver la valeur actuellement sélectionnée, comme ceci:
Je préfère cette méthode car vous pouvez ensuite exécuter des fonctions pour chaque option sélectionnée dans un champ de sélection donné.
J'espère que cela pourra aider!
la source
Habituellement, vous devez non seulement obtenir la valeur sélectionnée, mais également exécuter une action. Alors pourquoi ne pas éviter toute la magie jQuery et passer simplement la valeur sélectionnée comme argument à l'appel d'action?
la source
Vous pouvez sélectionner en utilisant l'option sélectionnée exacte: ci-dessous donnera innerText
Alors que ci-dessous vous donnera de la valeur.
la source