J'ai des radios dans ma page, et je veux faire quelque chose lorsque la radio cochée change, mais le code ne fonctionne pas dans IE:
$('input:radio').change(...);
Et après googler, les gens suggèrent d'utiliser le clic à la place. Mais ça ne marche pas.
Voici 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>
Cela ne fonctionne pas non plus dans IE.
Alors je veux savoir ce qui se passe?
Aussi j'ai peur si cela redéclenchera l'événement de changement si je clique sur une radio cochée?
MISE À JOUR:
Je ne peux pas ajouter de commentaire, donc je réponds ici.
J'utilise IE8 et le lien que Furqan me donne ne fonctionne pas non plus dans IE8. Je ne sais pas pourquoi...
jquery
radio-button
hguser
la source
la source
Réponses:
Ce code a fonctionné pour moi:
$(function(){ $('input:radio').change(function(){ alert('changed'); }); });
http://jsfiddle.net/3q29L/
la source
$('input[type=radio]')
plutôt (voir "notes supplémentaires": api.jquery.com/radio-selector )Vous pouvez spécifier l'attribut de nom comme ci-dessous:
$( 'input[name="testGroup"]:radio' ).change(
la source
Fonctionne aussi pour moi, voici une meilleure solution:
démo de violon
<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 fonctions javascript. Parce que$
c'est unejquery
fonction. Même$(function(){ <code> });
ne vérifiera pas
jquery
initialisé ou non. Cela garantira que<code>
ne fonctionnera qu'après l'initialisation de tous les javascripts.la source
Essayer
$(document).ready(
au lieu de
$('document').ready(
ou vous pouvez utiliser un formulaire abrégé
$(function(){ });
la source
$( 'input[name="testGroup"]:radio' ).on('change', function(e) { console.log(e.type); return false; });
Cette syntaxe est un peu plus flexible pour gérer les événements. Non seulement vous pouvez observer les «changements», mais ici aussi d'autres types d'événements peuvent être contrôlés en utilisant un seul gestionnaire d'événements. Vous pouvez le faire en passant la liste des événements en tant qu'arguments au premier paramètre. Voir jQuery On
Deuxièmement, .change () est un raccourci pour .on ("change", gestionnaire). Vois ici . Je préfère utiliser .on () plutôt que .change car j'ai plus de contrôle sur les événements.
Enfin, je montre simplement une syntaxe alternative pour attacher l'événement à l'élément.
la source