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 :

Déclencher évènement onChange automatiquement


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Par défaut Déclencher évènement onChange automatiquement
    Déclencher évènement onChange automatiquement

    Bonsoir.
    J'utilise un listener de type onChange sur une balise select.
    L'évènement se déclenche correctement si je modifie la valeur avec la souris.
    Mais si j'utilise une fonction javascript afin de modifier la valeur, alors l'évènement ne se déclenche plus.

    Voici un exemple simple :

    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
     
    <html>
    	<head></head>
    	<body onLoad="selectValue();">
    		<div>
    			select:
    			<select id="my_select" name="my_select" onChange="alert('hello world!')">
    				<option value="-1">Select value</option>
    				<option value="0">0</option>
    				<option value="1">1</option>
    				<option value="2">2</option>
    			</select>
    		</div>
    	</body>
    </html>
     
    <script language="javascript" type="text/javascript">
    	function selectValue() {
    		for (idx = 0 ; idx < document.getElementById('my_select').options.length ; idx++) {
    			if (document.getElementById('my_select').options[idx].value == "1") {
    				document.getElementById('my_select').selectedIndex = idx;
    			}
    		}
    	}
    </script>
    J'ai lu sur certains forums que le onChange ne se déclenchait uniquement que lors de modification de l'utilisateur (ie avec la souris ou le clavier).
    Si oui, est il possible de simuler une action utilisateur ?
    Si non, quel est mon problème ?

    Merci pour vos lumières.

  2. #2
    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
    Bonjour,

    Je ne sais pas si il est possible de simuler une action utilisateur mais en attendant, vous pouvez appeler la fonction du onchange juste après lui avoir changé sa valeur.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Par défaut
    Oui, vous avez raison.
    Mais j'espérai pouvoir éviter de dupliquer l'appel à ma fonction qui est bien plus léché que l'appel d'une popup...
    Mais vous avez plus d'expérience que moi et si ce n'est pas possible, tant pis pour la maintenance, je vais suivre ce conseil si simple.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    sql_ignorant ta question n'est pas idiote ,

    Si tu as un module de datePicker, pour un changement de date dans un input verrouillé, (pratique pour éviter le contrôle de saisie de la date !!!, le datePicker se charge de modifier la valeur dans l'input) et que tu veux que ce module active le onchange, tu fais comment ???

    sachant que le onchange est spécifique à chaque champs de date (date début, date fin par exemple)
    tu peux avoir plusieurs saisie de date dans un formulaire ...

    en plus tu peux utiliser ton module dans toutes tes applications aussi différentes soient-elles, c'est ça la modularité ....

    Dommage que cette activation ne semble pas exister, à mon il faut écrire une fonction javascript du style forceEvent(id,eventType)

    ou voir une solution la c'est du Jquery (après avoir essayé, ça ne fonctionne pas ...)

    La solution est d'ajouter des paramètres au module, et de faire un eval
    Ca aurait tellement plus simple de pouvoir déclencher un évènement sur un élément, tant pis ....

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 16/03/2011, 13h53
  2. envoyer un formulaire sur un évènement onchange.
    Par maniaco_jazz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/11/2005, 14h44
  3. Courcircuiter l'évènement OnChange d'un TEdit
    Par Captain_JS dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/07/2005, 14h33
  4. [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
  5. Récupérer événements OnChange&OnScroll de ScrollBox
    Par bohort dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/09/2004, 10h24

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