2010-04-15 10 views
30

Je dois manquer quelque chose d'évident ici ... Je ne peux pas obtenir .change() de tirer sur les boutons radio? J'ai le code ci-dessous en direct here!jQuery .change() sur le bouton radio

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Radio Button jQuery Change</title> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     console.log("parsed"); 
     $("input[name='rdio']").change(function() { 
      console.log("changed"); 
      if ($("input[name='rdio']:checked").val() == 'a') 
       $("output").text("a changed"); 
      else if ($("input[name='rdio']:checked").val() == 'b') 
       $("output").text("b changed"); 
      else 
       $("output").text("c changed"); 
     }); 
    </script> 
</head> 
<body> 
    <div> 
     <input type="radio" name="rdio" value="a" checked="checked" /> a <br/> 
     <input type="radio" name="rdio" value="b" /> b <br/> 
     <input type="radio" name="rdio" value="c" /> c 
    </div> 
    <h3>Output:</h3> 
    <div id="output"></div> 
</body> 
</html> 

Quelqu'un peut-il voir ce que j'ai manqué?

Merci, Denis

+8

... au moins le '#' à '$ (" output ")' ... – Leo

+0

vous pouvez aussi utiliser this.value à la place "input [nom = 'rdio']: coché"). Val() . Ce sera plus efficace. – Yaroslav

+0

Voici un document sur 'this' contexte https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this – Yaroslav

Répondre

41

Vous devez mettre le code dans l'événement dom prêt ...

$(document).ready(function(){ 
    // Your code here 
}); 

ou bien le script est exécuté avant que les éléments HTML ont été chargés. Ainsi, aucun radiobox n'existe.

+1

Merci beaucoup de poster ceci! –

15

Votre

$("output").text("a changed"); 

devrait également être

$("#output").text("a changed"); 

parce qu'il est un identifiant que vous êtes correspondant à contre.

Questions connexes