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 :

Un onClick ne marche pas après un onChange.


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 74
    Par défaut Un onClick ne marche pas après un onChange.
    Voilà mon problème: j'ai un onChange dans un input de type "text", et un onClick dans un input de type "button". Je renseigne le input de type "text" puis je clique immédiatement sur le bouton. Le contenu du onChange (un alert) est bien exécuté, mais le contenu du onClick du bouton n'est pas exécuté.
    J'ai essayé avec un code très simple, sans solution.
    J'utilise IE 8.
    D'autres ont le même problème ( http://www.codingforums.com/showthread.php?t=187383 ), sans avoir trouvé de solutions.

  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
    un return true à la fin du onchange ?
    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 confirmé
    Inscrit en
    Janvier 2008
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 74
    Par défaut
    Non, pas mieux (sous IE comme sous Firefox).

  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
    En effet curieux ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type='text' onchange="alert('change');" value="" />
    <input type='button' onclick="alert('click')" value="bouton" />
    ça marche en passant par le onfocus ...
    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
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut J'ai pas de Frog dans mon pseudo :(
    C'est l'alert qui perturbe le onclick on dirait car ceci déclenche bien les deux évènements :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input type='text' onchange="document.getElementById('test').value=this.value" value="" />
    <input type='button' onclick="alert('click');" value="bouton" />
    <input type='text' value='' id="test"/>

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 74
    Par défaut
    J'ai trouvé une solution pas terrible:

    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
    <script type="text/javascript">
    lancer = 0;
     
    function trucClick ()
    {
          lancer = 0;
          alert('click');
    }
     
    function trucChange ()
    {
          alert('change');
          if (lancer == 1)
          {
               trucClick();
          }
    }
    </script>
     
     
    <input type='text' onchange="setTimeout('trucChange()',250);" value="" />
    <input type='button' onclick="lancer = 1;" value="bouton" />
    J'ai pas trouvé mieux, même en mettant un Frog dans les noms.

  7. #7
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Comme l'a dit SpaceFrog, ceci fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <input type='text' onchange="alert('change');" value="" />
    <input type='button' onfocus="alert('click')" value="bouton" />
    Mais bon, si on se met dans le champ puis qu'on fait "tabulation", le bouton n'est pas cliqué mais l'alert se lance quand même...

    Il y a sans doute un moyen plus joli de contourner le problème.

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 74
    Par défaut
    J'ai adopté la solution avec le setTimeout. La solution avec le onFocus ne me convient pas car je veux que l'exécution ait lieu uniquement lorsqu'on clique sur le bouton, et non en faisant tabulation.

  9. #9
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script type="text/javascript">
    var changed= false
    </script>
     
    </head>
     
    <body>
     
     
    <input type='text' onchange="changed=true;" value="" />
    <input type='button' onfocus="if(changed){alert('click'), changed=false}" value="bouton" />
     
    </body>
    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 !

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

Discussions similaires

  1. [MySQL] Tableau qui ne se rafraichit pas après un onchange
    Par Budy123 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/08/2011, 13h34
  2. Onclick ne marche pas sur un element "disabled"
    Par Niki59 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/07/2009, 13h12
  3. [10g XE] Ne marche pas apres l'installation
    Par Monorom dans le forum Connexions aux bases de données
    Réponses: 10
    Dernier message: 04/01/2008, 17h42
  4. Lien ne marche pas apres enregistrement
    Par Richard57800 dans le forum Excel
    Réponses: 3
    Dernier message: 17/12/2007, 16h49
  5. Mon programme ne marche pas aprés le if:?
    Par mitherkiller dans le forum C
    Réponses: 28
    Dernier message: 28/03/2007, 19h47

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