86 votes

cliquez ou changez l'événement à la radio en utilisant jquery

J'ai quelques radios dans ma page,et je veux faire quelque chose lorsque l'objet de la radio changements,cependant, le code ne fonctionne pas sous IE:

$('input:radio').change(...);

Et après recherche sur google,les gens vous suggérons d'utiliser le clic à la place. Mais il ne fonctionne pas.

C'est l'exemple de code:

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
        <script type="text/javascript">
            $('document').ready(
                function(){
                    $('input:radio').click(
                        function(){
                            alert('changed');   
                        }
                    );  
                }
            );

        </script>
    </head>
    <body>
        <input type="radio" name="testGroup" id="test1" />test1<br/>
        <input type="radio" name="testGroup" id="test2" />test2<br/>
        <input type="radio" name="testGroup" id="test3" />test3</br>
    </body>
</html>

Elle aussi ne fonctionne pas dans IE.

Donc, je veux savoir ce qui se passe?

Aussi j'ai peur, si il va prolonger l'événement de changement si je clique sur un contrôle de la radio?

Mise à JOUR:

Je ne peux pas ajouter de commentaire,donc je réponds ici.

J'utilise IE8 et le lien Furqân me donner ne fonctionne pas avec IE8. Je ne sais pas pourquoi...

111voto

alexl Points 4535

travaille pour moi:

 $(function(){

$('input:radio').change(
    function(){
        alert('changed');   
    }
);          

});
 

http://jsfiddle.net/3q29L/

72voto

Cats777 Points 191

Vous pouvez spécifier l'attribut name comme ci-dessous:

 $( 'input[name="testGroup"]:radio' ).change(
 

13voto

suhail Points 2520

Fonctionne pour moi aussi, voici une meilleure solution::

violon démo

<form id="myForm">
  <input type="radio" name="radioName" value="1" />one<br />
  <input type="radio" name="radioName" value="2" />two 
</form>

<script>
$('#myForm input[type=radio]').change(function() {       
    alert(this.value);
});
</script>

Vous devez vous assurer que vous avez initialisé jquery au-dessus de toutes les autres importations et des fonctions javascript. Parce qu' $ est jquery fonction. Même

$(function(){
 <code>
}); 

ne vérifiera pas l' jquery initialisées ou non. Il veillera à ce que <code> sera exécuté qu'après que tous les javascripts sont initialisés.

7voto

rahul Points 84185

Essayer

 $(document).ready(
 

au lieu de

 $('document').ready(
 

ou vous pouvez utiliser un formulaire abrégé

 $(function(){
});
 

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