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 :

enable/disable d'input sous ie8


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Par défaut enable/disable d'input sous ie8
    Bonjour,

    J'ai dans une page web (.php) une fonction qui active ou désactive différents contrôles (textbox, selectbox etc...) en fonction du choix de l'utilisateur.

    La fonction en question est reliée à l'événement "onchange" de deux boutons radio et jusqu'ici tout fonctionne correctement à un seul petit détail, que sur firefox ça passe de enabled à disabled et vis versa lors du click, parcontre sur ie8 rien ne se passe mais qu'après validation, si on clique à nouveau n'importe où dans la page, à ce moment là, la fonction est exécutée correctement.

    Avez vous une idée d'où ça peut provenir, et éventuellement une solution à ce problème.

    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    sans voir de code ... ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    sans voir de code ... ???
    Voici le code des deux fonctions javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    function enableControl(){
     document.getElementById('rp1').disabled=true;
     document.getElementById('rp2').disabled=true;
     
     document.getElementById('rp1').checked=true;
     
     document.getElementById('sday').selectedIndex = 0;
     document.getElementById('smon').selectedIndex = 0;
     document.getElementById('syear').selectedIndex = 0;
     document.getElementById('eday').selectedIndex = 0;
     document.getElementById('emon').selectedIndex = 0;
     document.getElementById('eyear').selectedIndex = 0;
     
     document.getElementById('sday').disabled=true;
     document.getElementById('smon').disabled=true;
     document.getElementById('syear').disabled=true;
     document.getElementById('eday').disabled=true;
     document.getElementById('emon').disabled=true;
     document.getElementById('eyear').disabled=true;
     
     document.getElementById('lp').disabled=false;
     document.getElementById('cm').disabled=false;
     document.getElementById('cy').disabled=false;
    }
     
    function enableOpen(){
     document.getElementById('lp').disabled=true;
     document.getElementById('cm').disabled=true;
     document.getElementById('cy').disabled=true;
     
     document.getElementById('lp').selectedIndex = 0;
     
     document.getElementById('cm').checked=true;
     
     document.getElementById('rp1').disabled=false;
     document.getElementById('rp2').disabled=false;
     
     document.getElementById('sday').disabled=false;
     document.getElementById('smon').disabled=false;
     document.getElementById('syear').disabled=false;
     document.getElementById('eday').disabled=false;
     document.getElementById('emon').disabled=false;
     document.getElementById('eyear').disabled=false;
    }
    Les deux fonctions sont reliées à deux boutons radio:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input type="radio" name="radioreq" id="rdq1" value="libre" onchange="enableOpen();" checked="checked" />
     
    <input type="radio" name="radioreq" id="rdq2" value="control" onchange="enableControl();" />

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    essaye ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    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
    si on clique à nouveau n'importe où dans la page, à ce moment là, la fonction est exécutée correctement.
    Un événement onchange est lancé lorsque
    • un élément de formulaire prend le focus ;
    • la valeur de cet élément est modifiée ;
    • l'élément perd le focus.


    La façon dont ces trois actions sont gérées dépend de différentes choses, en particulier du navigateur.
    D'après ce que tu décris, il semble que IE8 ne fasse pas perdre le focus sur le click, donc le onchange n'est déclenché que lorsque tu le fais toi-même en cliquant ailleurs dans la page.
    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

  6. #6
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    essaye ?
    Le résultat est le même.

  7. #7
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Un événement onchange est lancé lorsque
    • un élément de formulaire prend le focus ;
    • la valeur de cet élément est modifiée ;
    • l'élément perd le focus.


    La façon dont ces trois actions sont gérées dépend de différentes choses, en particulier du navigateur.
    D'après ce que tu décris, il semble que IE8 ne fasse pas perdre le focus sur le click, donc le onchange n'est déclenché que lorsque tu le fais toi-même en cliquant ailleurs dans la page.
    C'est exectement ça Bovino, y aurait il une solution à ce problème?

  8. #8
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Par défaut
    bonjour,
    j'ai trouvé, si on modifie l'évènement déclencheur de onchange à onfocus tout marche correctement.

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

Discussions similaires

  1. Touche entrée dans input.onkeydown sous IE8 (jqGrid)
    Par loukoum82 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 18/06/2012, 15h26
  2. Changement type d'un input sous IE
    Par Orni dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/11/2006, 08h34
  3. Enabled / disabled sur un button
    Par Sephiroth Lune dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/11/2006, 15h44
  4. [MFC] SDI Enable/disable élement d'un menu
    Par Nergaahl dans le forum MFC
    Réponses: 4
    Dernier message: 12/06/2006, 10h49
  5. enable/disable listbox avec radiobouton
    Par -DeN- dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/02/2006, 17h05

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