web-dev-qa-db-fra.com

jQuery .change () sur le bouton radio

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

<!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

31
Denis Hoctor

Vous devez mettre le code dans l'événement dom-ready ...

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

ou bien le script est exécuté avant le chargement des éléments HTML. Ainsi, aucune radiobox n'existe.

42
Mickel

Votre

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

devrait également être

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

car c'est un identifiant que vous comparez.

16
Shervin Asgari