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 :

onchange sur INPUT modifié par javascript


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 23
    Par défaut onchange sur INPUT modifié par javascript
    Bonjour à tous,

    Je dois récupérer la valeur d'un input modifiée par JS mais ça ne fonctionne pas.

    voici un exemple :
    Code html : 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
    <input id="n" type="number" value='1'>
    <button type="button" id="p" name="button">+10</button>
     
    <div class="result"></div>
     
    <script type="text/javascript">
     
    const selectElement = document.getElementById('n')
    const plus = document.getElementById('p')
     
    plus.addEventListener('click', (event) => {
      selectElement.value = parseInt(selectElement.value) + 10
    })
     
    selectElement.addEventListener('change', (event) => {
      const result = document.querySelector('.result')
      result.textContent = event.target.value
    })

    Si je change directement la valeur du input la fonction 'change' s'exécute mais pas avec le bouton +10

    Quelqu'un à la solution?

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Bonjour,

    Quand tu interviens sur le button, aucun événement n'est déclenché sur l'input;
    donc, tu dois doubler l'instruction:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    const selectElement = document.getElementById('n'),
    plus = document.getElementById('p'),
    result = document.querySelector('.result');
     
    plus.addEventListener('click', (event) => {
      selectElement.value = parseInt(selectElement.value) + 10
      result.textContent = selectElement.value
    })
     
    selectElement.addEventListener('change', (event) => {
      result.textContent = event.target.value
    })

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 23
    Par défaut
    Et bien sûr c'était tout con
    Merci ! beaucoup !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2021
    Messages : 6
    Par défaut
    Sans doubler l'instruction, tu peux déclencher manuellement l'événement de « change »:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    plus.addEventListener('click', (event) => {
      selectElement.value = parseInt(selectElement.value) + 10
      selectElement.dispatchEvent(new Event('change'))
    })
    Juste une ligne de plus

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

Discussions similaires

  1. [Débutant] evènement onChange sur input text
    Par jacquesprogram dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/12/2009, 12h16
  2. Réponses: 3
    Dernier message: 21/11/2008, 15h15
  3. validation formulaire contenant input généré par javascript
    Par CedLeDebutant dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/10/2007, 13h55
  4. "onchange" sur select créé par javascript
    Par NicoNours dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/10/2006, 09h53
  5. HTML modifié par Javascript
    Par Warz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/03/2006, 21h53

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