Page 2 sur 2

Publié : 10 déc. 2006, 17:43
par calimo
martin a écrit :Je me permet de rajouter quelque chose malgré le [résolu] ajouté au titre.

Franchement je ne vois pas pourquoi il faudrait passer par la création d'un évènement avec createEvent et dispatchEvent.
Moi non plus, c'est juste ce que j'avais trouvé logique de faire :lol:

Je vais voir ce que tu proposes. En fait, le mieux serait de créer un objet contenant les champs et leurs contraintes, afin que quand je manipule un "objet" champ de formulaire je puisse accéder à d'éventuelles contraintes enfant qui en découleraient…

Code : Tout sélectionner

var select_2 = {
	constraints: new Array ( text_1),
	element: document.getElementById('select_2)
}
var select_1 = {
	constraints: new Array ( select_2),
	element: document.getElementById('select_1)
}
var select_3 = {
	element: document.getElementById('select_3)
}
var allSelects = new Array (
	select_1,
	select_2,
	select_3
);
Ensuite de quoi je pourrais initialiser avec une boucle tous mes selects.
Seul problème, il faudrait passer l'objet, alors que là on a un élément qui passe avec "this" :?

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1) Gecko/20061010 Firelimace Firefox/2.0

Publié : 11 déc. 2006, 11:48
par martin
Tu peux...

Mais quand tu fais un var mySelect = document.getElementById('select_1'), mySelect est déjà un objet que tu peux enrichir, auquel tu peux rajouter des propriétés et méthodes, par exemple ton tableau constraint.

Comme tu l'as compris, tu ne peux associer un comportement sur le onchange que sur un élément du DOM qui le comprend. Et quand cet événement survient, dans la fonction associée le this se réfère simplement à l'élément, donc à mySelect, comme ta propriété 'element' sur l'objet que tu suggère.

(chuis pas sûr d'être clair dans mes explications)