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 :

Problème de checkbox avec IE


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Février 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 36
    Par défaut Problème de checkbox avec IE
    Bonjour à tous, voici mon problème :
    - Sous Mozilla, ma fonction change_etat_enfant(..) fonctione bien
    - Sous IE, il faut que je fasse perdre manuellement le focus à mes checkboxs pour que l'évènement onChange prenne effet (et que mes checkbox filles soit disabled ou non).

    Je vous laisse le code, qui est je pense, plus parlant.

    <html>
    <head>
    <title>Administration</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="style.css" rel="stylesheet" type="text/css">
    <script type='text/javascript'>
    function change_etat_enfants(parent) {
    mesChk = document.getElementsByTagName("input");
    if (document.getElementsByName(parent)[0].checked)
    {
    for (i = 0; i < mesChk.length; i++) {
    if (mesChk[i].type.toLowerCase()=="checkbox")
    {
    if ((mesChk[i].name.substring(0, parent.length)==parent) && (mesChk[i].name.length==parent.length+1))
    {mesChk[i].disabled=false; mesChk[i].checked=false;}
    }
    }
    }
    else
    {
    for (i = 0; i < mesChk.length; i++) {
    if (mesChk[i].type.toLowerCase()=="checkbox")
    {
    if ((mesChk[i].name.substring(0, parent.length)==parent) && (mesChk[i].name!=parent))
    {mesChk[i].disabled=true; mesChk[i].checked=false;}
    }
    }
    }
    }
    </script>
    </head>
    <body onLoad="change_etat_enfants('chkAirbag');">

    <form name="formulaire" method="post" action="valider_ajout_vehicule.php">

    <fieldset>
    <legend>Options</legend>
    <input type="checkbox" name="chkToutesOptions" value="toutesOptions" />Toutes Options
    <fieldset>
    <legend>Options courantes</legend>
    <table>
    <tr>
    <td><input type="checkbox" name="chkAbs"/>ABS</td>
    <td><input type="checkbox" name="chkRetroviseursElectriques" />R&eacute;troviseurs &eacute;lectriques</td>
    <td><input type="checkbox" name="chkDirectionAssistee" />Direction Assist&eacute;e</td>
    <td><input type="checkbox" name="chkVerouillageCentralise"/>V&eacute;rouillage centralis&eacute;</td>
    </tr><tr>
    <td><input type="checkbox" name="chkAirbag" onChange="change_etat_enfants('chkAirbag');"/>Airbag</td>
    </tr><tr>
    <td></td>
    <td><input type="checkbox" name="chkAirbag1" onChange="change_etat_enfants('chkAirbag1');" />Avant</td>
    </tr><tr>
    <td></td>
    <td></td>
    <td><input type="checkbox" name="chkAirbag11"/>Conducteur</td>
    <td><input type="checkbox" name="chkAirbag12"/>Passager</td>
    </tr><tr>
    <td></td>
    <td><input type="checkbox" name="chkAirbag2" onChange="change_etat_enfants('chkAirbag2');"/>Arri&egrave;re</td>
    </tr><tr>
    <td></td>
    <td></td>
    <td><input type="checkbox" name="chkAirbag21"/>Conducteur</td>
    <td><input type="checkbox" name="chkAirbag22"/>Passager</td>
    </tr><tr>
    <td></td>
    <td><input type="checkbox" name="chkAirbag3" onChange="change_etat_enfants('chkAirbag3');"/>Lat&eacute;raux</td>
    </tr><tr>
    <td></td>
    <td></td>
    <td><input type="checkbox" name="chkAirbag31" />Conducteur</td>
    <td><input type="checkbox" name="chkAirbag32" />Passager</td>
    </tr>
    </table>
    </fieldset>
    </fieldset>
    <!-- y a encore beaucoup de champ dans ce formulaire ^^ -->
    </form>

    </body>
    </html>
    Vous pouvez retrouvez la page ici

  2. #2
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par gandoulfe
    Bonjour à tous, voici mon problème :
    - Sous Mozilla, ma fonction change_etat_enfant(..) fonctione bien
    - Sous IE, il faut que je fasse perdre manuellement le focus à mes checkboxs pour que l'évènement onChange prenne effet (et que mes checkbox filles soit disabled ou non).
    Plusieurs solutions:

    1- Tu utilises le onclick, pour faire un blur de ta checkbox. Dans ce cas, ça fonctionnera....
    2- Il faut faire un timer qui vérifie régulièrement les changements des checkbox, c'est la seule solution complètement compatible (mais c'est plus compliqué....)

  3. #3
    Membre averti
    Inscrit en
    Février 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 36
    Par défaut
    Ok c'est bon, j'ai testé la 1ère solution. Merci DenisC.

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

Discussions similaires

  1. probleme de cochage de checkbox avec liste sous liste etc.
    Par satan.malin dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/02/2006, 21h49
  2. Réponses: 1
    Dernier message: 30/11/2005, 14h57
  3. checked d'un checkbox avec nom dynamique
    Par Sylvain245 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/11/2005, 11h28
  4. [struts] mémorisation d'une checkbox avec cookie
    Par rocco dans le forum Struts 1
    Réponses: 3
    Dernier message: 22/04/2004, 12h39

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