171 votes

JQuery $(#radioButton).change(...) ne pas tirer pendant la durée désélection

Il y a un mois Mitt question est restée sans réponse. Malheureusement, je suis en cours d'exécution dans la même situation.

http://api.jquery.com/change/#comment-133939395

Voici la situation. J'utilise JQuery pour capturer les changements dans un bouton radio. Lorsque le bouton radio est sélectionné-je activer une zone d'édition. Lorsque le bouton radio est de-sélectionné, je voudrais la zone d'édition pour être désactivé.

L'activation des œuvres. Lorsque je choisis un autre bouton radio dans le groupe, le Changement de l'événement n'est PAS déclenché. Personne ne sait comment résoudre ce problème?

<input type="radio" id="r1" name="someRadioGroup"/> 


                <script type="text/javascript">
                    $("#r1").change(function () {
                        if ($("#r1").attr("checked")) {
                            $('#r1edit:input').removeAttr('disabled');
                        }
                        else {
                            $('#r1edit:input').attr('disabled', true);
                        }
                    });
                </script>

311voto

Andomar Points 115404

Ressemble à de la change() fonction n'est appelée que lorsque vous vérifiez un bouton radio, pas lorsque vous décochez la case. La solution que j'ai utilisé est de lier l'événement change à chaque bouton radio:

$("#r1, #r2, #r3").change(function () {

Ou vous pourriez donner à tous les boutons de la radio du même nom:

$("input[name=someRadioGroup]:radio").change(function () {

Voici un travail jsfiddle exemple (mise à jour de Chris Porter de commentaire.)

Par @Ray commentaire, vous devez éviter d'utiliser des noms avec des . . Ces noms de travailler en jQuery 1.7.2 mais pas dans les autres versions (jsfiddle exemple.).

35voto

3nigma Points 21164
<pre><code></code><p>partie de jQuery</p><pre><code></code></pre><p><a href="http://jsfiddle.net/aqZgs/1/"><strong>DÉMO</strong></a></p></pre>

22voto

jterrace Points 21939

Vous pouvez lier à l’ensemble des cases d’option à la fois par son nom :

Exemple de travail ici : http://jsfiddle.net/Ey4fa/

5voto

user3052657 Points 21

Normalement, cela fonctionne pour moi :

``

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