11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai des champs de formulaire me permettant de choisir une couleur de personnalisation.

J'ai mis un évènement onchange sur ce champ, et dès son édition par l'utilisateur, je récupère bien l'évènement pour le traiter.

J'utilise un outils de sélection de couleurs qui modifie le .value du champ en question.

Le problème est que du coup je ne récupère pas mon évènement.

Est il possible de faire un fire manuel d'un évènement ?

Comment résoudre ce problème ?

Merci,

Charles
Je ne comprends pas bien ton problème ?

Veux-tu dire qu'il y a deux façons de changer la couleur ?
Une suivant la volonté de l'utilisateur par modification du champ,
Une autre par l'intermédiaire d'un JavaScript qui bidouille le .value ?

Si c'est le cas alors tu as deux solutions :

Si ton JS change la valeur de .value alors c'est dans ce JS qu'il faut faire enchaîner la fonction de traitement du onchange. Pas besoin de générer l'évènement artificiellement puisque tu sais qu'il s'est produit.

Si tu ne veux pas rentrer dans le code qui te tripatouille le .value dans ton dos alors tu mémorises la valeur du .value avant l'exécution du code, à la fin de l'exécution du code tu check la nouvelle valeur du .value et si elle diffère de celle mémorisée, tu enclenches la fonction de traitement de ton évènement.
Modifié par aCOSwt (08 Feb 2007 - 09:48)
Oui, le problème est que mon script de choix de la couleur est utilisé sur plusieurs champs input, auxquels sont associés des évènements différents sur le onchange, je ne peux donc pas savoir dans mon script de choix de la couleur lequel utiliser.

Est il possible de récupérer l'évènement associé et de faire un call ?
Je comprends encore moins.

Car enfin, si tes fonctions de traitement sont différentes en fonction du champ, comment saurais-tu quel évènement déclencher, pour autant que cela soit possible.

Vraiment, si j'ai bien compris ton problème, la seule solution que je vois est une extension de la deuxième solution que je te proposais.

Tu mets un tableau à jour des valeurs des différents .value de tes différents champs,
en fin d'exécution de ta procédure de modification de couleur, tu enclenche une procédure de comparaison entre la valeur actuelle des .values et celle sauvegardée dans le tableau.
Tu reconnais les changements et déclanche la fonction de traitement associée,
Tu remets ton tableau à jour.