J'ai deux boutons radio sur l'événement de changement je veux changer de bouton Comment est-ce possible? Mon code
<input type="radio" name="bedStatus" id="allot" checked="checked" value="allot">Allot
<input type="radio" name="bedStatus" id="transfer" value="transfer">Transfer
Scénario
<script>
$(document).ready(function () {
$('input:radio[name=bedStatus]:checked').change(function () {
if ($("input[name='bedStatus']:checked").val() == 'allot') {
alert("Allot Thai Gayo Bhai");
}
if ($("input[name='bedStatus']:checked").val() == 'transfer') {
alert("Transfer Thai Gayo");
}
});
});
</script>
if($("input[name='bedStatus']:checked").val() == 'allot')
peut être écritif($("input[name='bedStatus']").val() == 'allot')
Réponses:
Vous pouvez utiliser
this
ce qui fait référence à l'input
élément actuel .http://jsfiddle.net/4gZAT/
Notez que vous comparez la valeur
allot
à la fois si les instructions et le:radio
sélecteur sont obsolètes.Dans le cas où vous n'utilisez pas jQuery, vous pouvez utiliser les méthodes
document.querySelectorAll
etHTMLElement.addEventListener
:la source
:radio
sélecteur n'est pas obsolète (dans jQuery).this
valeur ou si vous souhaitez utiliser lathis
valeur de contexte environnant dans votre gestionnaire, cet extrait de code utilisethis
. Et prétendre utiliser des fonctions régulières est une «vieille mauvaise pratique» n'a absolument aucun sens! De plus, les anciens navigateurs ne prennent pas en charge la syntaxe de la fonction flèche etArray#includes
et il faut utiliser un transpilateur et un shim pour prendre en charge les anciens navigateurs. Pourquoi compliquer une réponse simple qui n'a rien à voir spécifiquement avec les fonctions fléchées?this
, j'utiliseevent.target
.Une adaptation de la réponse ci-dessus ...
http://jsfiddle.net/xwYx9
la source
.on()
vraiment des gains par rapport à ce qui précède, cependant, si l'on prend en compte les sélecteurs dynamiques, c'est sûrement le seul moyen d'aller dans jQuery 1.7+on
a des gains lorsque vous fournissez un contexte pour la délégation d'événement, ou même pour les sélecteurs dynamiques comme vous l'avez dit, mais la façon dont vous l'avez écrit, est exactement la même que la réponse ci-dessus.Une manière plus simple et plus propre serait d'utiliser une classe avec la réponse de @ Ohgodwhy
Scénario
la source
JS Fiddle
la source
$(this).is(":checked")
utilisationthis.checked
. C'est du JS pur et c'est donc beaucoup plus rapide.Utiliser la fonction onchage
la source
Solution ES6 simple (javascript uniquement) .
la source
la source
la source
Si les boutons radio sont ajoutés dynamiquement, vous pouvez utiliser
la source
la source