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 :

Input type hidden et onchange


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 139
    Par défaut Input type hidden et onchange
    Bonsoir à tous.

    Je n'arrive pas à détecter que le champ input de type hidden est modifié.

    Ce qu'il se passe c'est que j'ouvre une popin où je sélectionne une valeur qui permet de refermer la popin et de remplir l'input de type hidden.

    Toutefois je mets un onchange dans l'input, et dedans je mets une fonction et le problème c'est qu'elle n'est jamais appelé. Je teste en mettant une alerte pour voir si on passe bien dans le onchange mais c'est la même chose l'alerte ne s'exécute pas.

    J'ai un input de cette forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="hidden" name="link" id="link" onchange="alert('toto');"/>
    et la popin à sa fermeture modifie bien la valeur de link.

    Je ne comprends pas pourquoi l'alerte ne se lance pas lorsque ce champ est modifié et surtout comment faire pour détecter qu'il est modifié?

    J'essaye en faisant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function SubmitIt()
          {
            alert('opopop');
          }
    document.getElementById('link').addEventListener('change', SubmitIt, false);
    Mais il ne se passe rien quand même.

    Quelqu'un a une idée de la manière de faire?

    Merci

  2. #2
    Membre émérite
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Par défaut
    Bonjour,
    Sur un input hidden, l’évènement "change" n'est pas déclenché si vous changez la valeur par script.
    Pour contourner, vous pouvez utiliser un input normal avec la propriété css "display:none" .

  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
    Un événement onchange, c'est : l'élément prend le focus, la valeur de l'élément est modifiée, l'élément perd le focus.
    Sur un input hidden, la notion de focus n'existe pas donc pas d'événement onchange.
    Ceci dit, étant donné que la valeur ne peut être modifiée que par programmation (et pas par une action de l'utilisateur), il est facile de savoir quand la valeur est modifiée et d'appelée la fonction idoine à ce moment là, pas besoin d'événement.
    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
    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
    Citation Envoyé par dkmix
    Pour contourner, vous pouvez utiliser un input normal avec la propriété css "display:none" .
    Non, d'abord parce que si le display est à none, alors le champ ne sera pas envoyé lors de la soumission du formulaire, ensuite parce que là encore, si le display est à none, alors pas de focus possible, donc pas d'événement onchange.
    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

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 139
    Par défaut
    Je vous remercie pour vos réponses, ça m'a vraiment super bien aidé.
    Ce que je fais c'est que dans la popin où je fais la modif du champ input hidden j'appelle la fonction à utiliser et ça marche.

    Merci à tous

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

Discussions similaires

  1. Recuperer la valeur d'une liste dans un input type hidden
    Par KiranoO dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/05/2008, 12h12
  2. [Upload] $_POST d'un input type=hidden
    Par polothentik dans le forum Langage
    Réponses: 16
    Dernier message: 05/05/2008, 15h56
  3. html:hidden et <input type="hidden">
    Par minimoi1234 dans le forum Struts 1
    Réponses: 5
    Dernier message: 05/05/2008, 14h54
  4. input type = hidden
    Par taffMan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/09/2006, 22h31
  5. [input type hidden] devient nul
    Par Nadine dans le forum ASP
    Réponses: 17
    Dernier message: 25/04/2005, 20h26

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