103 votes

javascript jquery radio button click

J'ai 2 boutons radio et jquery en cours d'exécution.

 <input type="radio" name="lom" value="1" checked> first
<input type="radio" name="lom" value="2"> second
 

Maintenant, avec un bouton, je peux configurer onClick pour exécuter une fonction. Comment faire en sorte que les boutons radio exécutent une fonction lorsque je clique sur l'un d'eux?

190voto

Peter Kelly Points 5758

Vous pouvez utiliser .change pour ce que vous voulez

 $("input[@name='lom']").change(function(){
    // Do something interesting here
});
 

à partir de jQuery 1.3

vous n'avez plus besoin du '@'. La manière correcte de sélectionner est:

 $("input[name='lom']")
 

60voto

JohnIdol Points 16355

Si vous avez vos radios dans un conteneur avec id = radioButtonContainerId, vous pouvez toujours utiliser onClick, puis vérifier laquelle est sélectionnée et exécuter en conséquence certaines fonctions:

 $('#radioButtonContainerId input:radio').click(function() {
    if ($(this).val() === '1') {
      myFunction();
    } else if ($(this).val() === '2') {
      myOtherFunction();
    } 
  });
 

21voto

Bishoy Hanna Points 901
<input type="radio" name="radio" value="creditcard" />
<input type="radio" name="radio" value="cash"/>
<input type="radio" name="radio" value="cheque"/>
<input type="radio" name="radio" value="instore"/>

$("input[name='radio']:checked").val()

15voto

Dobiatowski Points 2566

cela devrait être bon

 $(document).ready(function() {
    $('input:radio').change(function() {
       alert('ole');
    });
}
 

8voto

ZeroK Points 95

Il y a plusieurs façons de le faire. Avoir un conteneur autour des boutons radio est fortement recommandé, mais vous pouvez aussi mettre une classe directement sur les boutons. Avec ce code HTML:

<ul id="shapeList" class="radioList">
<li><label>Shape:</label></li>
<li><input id="shapeList_0" class="shapeButton" type="radio" value="Circular" name="shapeList" /><label for="shapeList_0">Circular</label></li>
<li><input id="shapeList_1" class="shapeButton" type="radio" value="Rectangular" name="shapeList" /><label for="shapeList_1">Rectangular</label></li>
</ul>

vous pouvez les sélectionner par catégorie:

$(".shapeButton").click(SetShape);

ou sélectionner par numéro du conteneur:

$("#shapeList").click(SetShape);

Dans les deux cas, l'événement va déclencher en cliquant sur le bouton radio ou sur l'étiquette pour elle, bien que, curieusement, dans le dernier cas (Sélection par "#shapeList"), en cliquant sur l'étiquette de déclencher la fonction de clic deux fois pour une raison quelconque, au moins dans FireFox, la sélection par la classe de ne pas le faire.

SetShape est une fonction, et ressemble à ceci:

function SetShape() {
    var Shape = $('.shapeButton:checked').val();
//dostuff
}

De cette façon, vous pouvez avoir des étiquettes sur vos boutons, et peut avoir plusieurs bouton radio à des listes sur la même page que faire des choses différentes. Vous pouvez même avoir chaque bouton dans la même liste de faire des choses différentes par la mise en place de comportement différent dans SetShape() basé sur la valeur du bouton.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X