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 :

onclick et onchange


Sujet :

JavaScript

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 10
    Par défaut onclick et onchange
    Bonjour à tous et à toutes,

    J'espère poster au bon endroit sur le forum, si ce n'est pas le cas, veuillez m'en excuser.

    Je vais expliquer pourquoi je poste sur ce forum :

    J'ai un champ "type=text" dans lequel est contenu une date. Il est demandé à l'utilisateur de rentrer la date en brut ("19-06-2013" par exemple), et lorsque l'on quitte le champ, l'évènement 'onchange' s'enclenche et recharge la page avec la nouvelle date.
    Ainsi, j'obtiens une date de début, et une date de fin, qui permet ensuite de faire une recherche MySQL entre ces deux dates. Bref passons.

    Seulement voilà, je voudrais améliorer le système en y introduisant un calendrier. J'ai réalisé des tests, ou j'effectuais un 'onclick' (pour afficher le calendrier), et où normalement après avoir sélectionner la date, l'évènement 'onchange' doit s'enclencher. Seulement voilà, ce n'est pas le cas. Le 'onchange' ne s'effectue pas. Et je ne comprend pas pourquoi.

    J'ai pensé que c'était le script du calendrier qui bloquait quelque chose (code pris sur internet, donc je n'ai pas pu tout décelé de son fonctionnement), mais après des tests simples comme :
    - un bouton
    - un champ text
    - lorsque l'on clique sur le bouton, cela change le 'value' du champ text
    - dans la balise du text, onchange appelle une fonction javascript qui affiche une alerte.

    Résultats :
    - Lorsque je clique sur le bouton, le texte change, mais l'alerte ne s'affiche pas.
    - Si je change le texte en brut avec mon clavier, en sortant du champ, l'alerte s'affiche.

    Conclusion :

    Je ne comprend pas pourquoi cela ne fonctionne pas en cliquant sur le bouton, alors que la valeur a bien changé, c'est pourquoi je me tourne vers vous.

    Merci d'avance pour vos réponses, en espérant avoir été clair et précis,

    Bertrand

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que tu pourrais nous fournir le code permettant de reproduire le problème ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  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
    C'est logique.
    Un événement onchange correspond à la séquence
    1. Perte du focus.
    2. La valeur du champ a été modifiée.

    Si tu modifies la valeur du champ via un script, le champ n'étant pas actif, il ne peut pas perdre le focus et du coup l'événement n'est pas déclenché.

    Dans le cadre d'un calendrier, c'est un peu plus vicieux, car le champ prend le focus quand tu cliques dessus, mais le perd lorsque tu cliques sur un item du calendrier, donc avant que la valeur du champ soit modifiée et dans ce cas, c'est l'étape 2 qui n'est plus satisfaite...

    Pour la solution, c'est simple : le onchange déclenche l'exécution d'une fonction JavaScript, tu n'as donc qu'à appeler cette fonction quand la date choisie est cliquée !
    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é
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 10
    Par défaut
    Bonjour,

    merci pour vos réponses,

    étant donné que la réponse de Bovino est très bien expliqué, je vais suivre ce conseil, et testé comme vous m'avez dit.
    Si jamais je n'ai aucun résultat, je posterais le code de test pour que Sabotage et d'autres puissent donner leur avis également.

    Merci,

    Bertrand

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 10
    Par défaut
    Re Bonjour,

    Je reposte pour dire que ca fonctionne ! J'ai réussi à faire ce que je voulais faire.

    Un grand merci à vous pour vos réponses claires et précises

    Bonne continuation,

    Bertrand

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

Discussions similaires

  1. recuperer l'element d'un onchange ou onClick
    Par dyngry dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/05/2010, 19h41
  2. [JS] form.submit: Différence entre onchange et onclick
    Par leminipouce dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/07/2008, 12h09
  3. event sur radio buttons : onclick, setTimeout,onchange
    Par Pallando dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/06/2008, 12h25
  4. HTML/ASP : onClick, onChange etc..
    Par G.D.O dans le forum ASP
    Réponses: 4
    Dernier message: 01/02/2006, 12h46
  5. [HTML] Probleme avec les événement OnChange et OnClick
    Par G_Kill dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 04/05/2005, 16h06

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