Bonjour,

j'essaie de faire un controle générique pour des champs de type différentes (input,select...) avec des formats différents (date,email,numérique,texte)

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
var mesChampsControleDate=['date_naissance'];
var mesChampsControleNumerique=[];
var mesChampsControleEmail=[];
//si pas de controle mesChampsControleEmail=[];
///-----------------------------a completer-----------------------------------///
 
///----------------------------onChange------------------------------------///
function onChange()
{
 
	//controle Date
	xt$ ="";
 
	var elem = "";
 
	for(var i=0;i<mesChampsControleDate.length;i++){
		for (var k=0;k<nbLigneEnregistrement;k++) {	
			if (k>0) xt$='_'+k;
			var nomElement = mesChampsControleDate[i]+xt$;
			//alert("nom element1: "+nomElement);
			elem = "";
			elem = document.getElementsByName(nomElement);
			alert("nom element: "+elem(0).name);
 
			elem(0).onchange = function() {
 
				alert("nom elem1: "+elem(0).name);
				alert("nom elem2: "+elem.name);
				alert("j'appelele function1: "+elem(0).value);
				modifiedDoc=true;	
				controleDateValide(elem(0));
			};
		}
	}
 
	//controle numerique
	/*xt$ ="";
	for(var i=0;i<mesChampsControleNumerique.length;i++){
		for (var k=0;k<nbLigneEnregistrement;k++) {	
			if (k>0) xt$='_'+k;
			var nomElement = mesChampsControleNumerique[i]+xt$;
			var elem = document.getElementsByName(nomElement);
			elem(0).onchange = function() {
					//controleDateValide(elem(0));
					if (isNaN(elem.value)) 
						error(elem(0).name,MSGC_FLOAT);
			};
		}
	}*/
 
	/*xt$ ="";
	for(var i=0;i<mesChampsControleEmail.length;i++){
		if (i>0) xt$='_'+i;
		if (mesChampsControleEmail[i]==elem.name)
			return true;
	}*/
}
La fonction onChange est appellé des le chargement de la page, donc j'essaie d'associer a chaque changement de mon input 'date_naissance' definit dans le tableau mesChampsControleDate à un controle de date. Le probleme est qu'il y plusieurs enregistrements donc le nom de mes champs input pour la date vont être: 'date_naissance' pour le premier enregistrement 'date_naissance_1' pour le deuxième enregistrement. Ici j'ai testé avec 2 enregistrement mais le principe reste le meme avec n enregistrements.

le probleme se declenche ici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
alert("nom element: "+elem(0).name);
//ici j'ai le bon element			
			elem(0).onchange = function() {
				//ici je récupère tous le temps le dernier element (c est a dire date_naissance_1)
				alert("nom elem1: "+elem(0).name);
				alert("nom elem2: "+elem.name);
				alert("j'appelele function1: "+elem(0).value);
				modifiedDoc=true;	
				controleDateValide(elem(0));
			};
Le probleme c'est quand je change ma valeur de l'input date_naissance c'est la valeur de l'input date_naissance_1 qui est controlé lors de l'appelle a
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
controleDateValide(elem(0));
j'espere que j'ai été a peu près clairdans mes explication

merci d'avance