Probleme avec le onchange
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:
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:
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:
1 2
|
controleDateValide(elem(0)); |
j'espere que j'ai été a peu près clairdans mes explication
merci d'avance