L'alerte Je veux obtenir une valeur de l'option sélectionnée lorsque je clique sur le bouton. Quelqu'un peut-il me guider sur la façon dont je peux y parvenir? p> Vous pouvez tester mon code en plaçant dans une URL ci-dessous p> https://www.w3schools.com/jquery/tryit.asp?fileName=Jequent_change_ref P> < / p> code> fonctionne pour la première fois. Cependant, lorsque je modifie l'option code> à nouveau (sans rafraîchir la page), il alerte les deux options, c'est-à-dire. La première option sélectionnée et la deuxième option sélectionnée également.
5 Réponses :
<script>
$(document).ready(function(){
var value;
$(".test").change(function(){
value = $(this).val();
});
$('.button').click(function(){
alert(value);
});
});
</script>
<select class="test">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<button class="button" value="button">button</button>
As suggested by @Rory
Oui, je pense: p mon mauvais,
Vous devez lier le gestionnaire de clic immédiatement, et une seule fois, pas sur chaque changement de l'entrée, car vous êtes accumuler em> tous ceux qui cliquent des gestionnaires ... entraînant une quantité croissante d'alertes: p> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="test">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<button class="button" value="button">button</button>
Utiliser .Off (), la méthode supprime les gestionnaires d'événements attachés avec .on ().
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select class="test"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <button class="button" value="button">button</button> <button class="button2" value="button2">button2</button>
Je veux dire, techniquement cela fonctionnerait, mais il est très loin d'être une bonne pratique.
Ahh merci. Apprendre de nouvelles choses. Gardez cette pointe à l'esprit.
@Shree je ne peux pas utiliser () pour deux fois comme étant le dernier éteint () ne fonctionnera que n'importe quelle suggestion, car j'ai deux boutons différents et une option de sélection
Essayez ceci: p>
xxx pré> blockQuote>
$(document).ready(function(){
$(".test").change(function() {
alert($(this).find(":selected").val())
})
})
S'il vous plaît ne publiez pas seulement le code comme réponse, mais fournissez également une explication de votre code et de la manière dont il résout le problème de la question. Les réponses avec une explication sont généralement de meilleure qualité et sont plus susceptibles d'attirer des upvotes.
Merci pour votre suggestion. La prochaine fois que je vais essayer d'expliquer
Le problème est que vous créez un nouveau
Cliquez sur CODE> HANDER à chaque fois que lechange code> incendie d'événement i>. Déplacez leCliquez sur CODE> HANDER EXTÉRIEUR B> duModifier code>.Cliquez sur l'événement déclenché dans votre événement de changement, sa boucle infinie! ?