web-dev-qa-db-fra.com

JQuery change la valeur du bouton radio

J'ai une variable appelée category qui doit changer sa valeur en fonction du bouton radio sélectionné. Le problème est que je ne comprends pas qu'en cliquant sur un bouton radio ou un autre, la valeur change instantanément. 

C'est le code que j'ai:

<form>
<input type="radio" name="category" value="doctor" /> Doctor
<input type="radio" name="category" value="police" checked /> Policia
</form>

var category = $('[name="category"]:checked').val();

J'ai besoin de vous pour changer automatiquement la valeur de la variable category lorsque vous cliquez sur les boutons radio.

10
Nacho Sarmiento

Vous devez modifier la valeur de la catégorie chaque fois qu'un utilisateur modifie le bouton radio sélectionné. Par conséquent, vous aurez besoin d'un événement à déclencher lorsque l'utilisateur clique sur une radio. Vous pouvez vérifier le FIDDLE

var category = null;
$("input[name='category']").click(function() {
    category = this.value;
});
14
Jose Vega

Attachez un gestionnaire d'événement à l'événement change:

$(':radio[name="category"]').change(function() {
  var category = $(this).filter(':checked').val();
});
38
Blender
var category;
    $(':radio[name="category"]').change(function() {
      category=this.value;
    });

Et ceci est une jsfiddle.net demo.

1
nima shayanfar

Je pense que vous avez simplement besoin de quelque chose comme ça:

var category;

    $('radio[name="category"]').click(function(){
      category=this.value;
    });
1
albanx

Vous ne devriez pas donner le même ID pour plus d'un élément, vous devriez plutôt utiliser class comme ceci:

<form>
  Option 1<input type="radio" name="opt" class="radio" value="Option 1">
  Option 2<input type="radio" name="opt" class="radio" value="Option 2">
</form>

au lieu de :

<form>
  Option 1<input type="radio" name="opt" id="radio" value="Option 1">
  Option 2<input type="radio" name="opt" id="radio" value="Option 2">
</form>

et votre code reste le même et il devrait bien fonctionner :)

1
ala'a alqadi

Au lieu d'utiliser la variable category, utilisez $('[name="category"]:checked').val() où vous voulez la valeur du bouton radio coché. Sinon, vous pouvez utiliser les événements change ou click pour définir la valeur des boutons radio checked dans la variable category.

0
ShankarSangoli

utilisez le .change () afin de capturer l'événement de changement pour un bouton radio.

0
bdparrish