IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

'disable' des checkbox sur IE


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut 'disable' des checkbox sur IE
    Bonjour,

    J'utilise un petit script pour mettre 'disable' trois checkbox lorsque je clique sur une quatrième. Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        function updateCheckboxes(cb) {
            if (cb.checked) {
                document.getElementById("cb1").disabled = true;
                document.getElementById("cb2").disabled = true;
                document.getElementById("cb3").disabled = true;
                document.getElementById("cb4").disabled = true;
            }
            else {
                document.getElementById("cb1").disabled = false;
                document.getElementById("cb2").disabled = false;
                document.getElementById("cb3").disabled = false;
                document.getElementById("cb4").disabled = false;
            }
        }
    Et le HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        <input id="cb1" type="checkbox" name="Resource" checked="checked"/> Resources <br />
        <input id="cb2" type="checkbox" name="Capacity" checked="checked"/> Capacity Forecast <br />
        <input id="cb3" type="checkbox" name="BudgetSynthesis" checked="checked"/> Budget Synthesis <br />
        <input id="cb4" type="checkbox" name="Plan" checked="checked"/> Operation Plan <br />
        <input type="checkbox" name="Rpm" onchange="updateCheckboxes(this)"/> RPM Data <br />

    Tout cela marche très bien sur Chrome mais je viens de le tester sous IE et là plus rien ne marche, toutes mes checkbox réagissent n'importe comment...

    Pourriez-vous m'indiquer d'où vient le problème afin de trouver une alternative ?

    Merci d'avance,

    Alex

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        function updateCheckboxes(cb) {
                document.getElementById("cb1").disabled = cb.checked;
                document.getElementById("cb2").disabled = cb.checked;
                document.getElementById("cb3").disabled = cb.checked;
                document.getElementById("cb4").disabled = cb.checked;
     
        }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="Rpm" onclick="updateCheckboxes(this)"/> RPM Data <br />

    A+.

    EDIT: L’événement onchange n'est appelé sous IE que si l' attribut value de l'élément a été modifié manuellement. Or que ce n'est possible pour les checkbox et les radio button.

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Andry, il est en général préférable de mettre les valeurs dont on se sert plusieurs fois dans une variable, ça évite de faire le test sur la propriété à chaque fois.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function updateCheckboxes(cb) {
        var isChecked = cb.checked;
        document.getElementById("cb1").disabled = isChecked;
        document.getElementById("cb2").disabled = isChecked;
        document.getElementById("cb3").disabled = isChecked;
        document.getElementById("cb4").disabled = isChecked;
    }
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut
    Super, ça marche parfaitement. Je ne savais pas ce détail sur l'événement OnChange

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/10/2008, 11h30
  2. if/else sur des checkbox
    Par Jay.Jay dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/10/2008, 08h12
  3. Réponses: 4
    Dernier message: 21/11/2006, 14h44
  4. condition sur des checkbox
    Par bogsy15 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/08/2006, 09h28
  5. boucler sur des checkboxes
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 09/10/2004, 08h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo