Compte tenu des éléments suivants:
<select id="location">
<option value="a" myTag="123">My option</option>
<option value="b" myTag="456">My other option</option>
</select>
<input type="hidden" id="setMyTag" />
<script>
$(function() {
$("#location").change(function(){
var element = $(this);
var myTag = element.attr("myTag");
$('#setMyTag').val(myTag);
});
});
</script>
Cela ne fonctionne pas ...
Que dois-je faire pour obtenir la valeur du champ caché mise à jour à la valeur de myTag lorsque la sélection est modifiée. Je suppose que je dois faire quelque chose pour obtenir la valeur actuellement sélectionnée ...?
Essaye ça:
la source
Cela parce que l'élément est le "Select" et non "Option" dans lequel vous avez la balise personnalisée.
Essayez ceci:
$("#location option:selected").attr("myTag")
.J'espère que cela t'aides.
la source
Essaye ça:
Dans la fonction de rappel pour
change()
,this
fait référence à la sélection, pas à l'option sélectionnée.la source
Supposons que vous ayez plusieurs sélections. Cela peut le faire:
la source
Vous êtes assez proche:
la source
Syntaxe plus simple si une seule forme.
var option = $('option:selected').attr('mytag')
... si plusieurs formulaires.
var option = $('select#myform option:selected').attr('mytag')
la source
Voici le script complet avec un appel AJAX pour cibler une seule liste dans une page avec plusieurs listes. Aucune des autres choses ci-dessus n'a fonctionné pour moi jusqu'à ce que j'utilise l'attribut "id" même si mon nom d'attribut est "ItemKey". En utilisant le débogueur
Débogage Chrome
J'ai pu voir que l'option sélectionnée avait des attributs: avec une carte vers le "id" JQuery et la valeur.
Voici le fichier JSON à créer ...
J'espère que cela vous aide, merci à tous de m'avoir amené jusqu'ici.
la source
Essayez cet exemple:
la source
la source
Vous pouvez également essayer celui-ci avec
data-myTag
la source
Le plus simple,
la source