Javascript -concaténation dans une fonction

Ddjo -  
stephane_mc2004 Messages postés 755 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Voilà j'essaye d'apprendre le javascript, en utilisant des programmes existants.
J'ai récupéré une fonction de vérification des champs d'un formulaire sur un site que je me dois de citer:

http://wiki.mediabox.fr/tutoriaux/javascript/verifier-les-champs-formulaire-colorer-les-champs-faux

La fonction se présente sous la forme suivante :


function check() {
var msg = "";

//Vérification du mail s'il n'est pas vide on vérifie le . et @

if (document.formulaire.mail.value != "") {
indexAroba = document.formulaire.mail.value.indexOf('@');
indexPoint = document.formulaire.mail.value.indexOf('.');
if ((indexAroba < 0) || (indexPoint < 0)) {

//dans le cas ou il manque soit le . soit l'@ on modifie la couleur d'arrière plan du champ mail et définissons un message d'alerte

document.formulaire.mail.style.backgroundColor = "#F3C200";
msg += "Le mail est incorrect\n";
}
}

//Notre champs mail est vide donc on change la couleur et on défini un autre message d'alerte

else {
document.formulaire.mail.style.backgroundColor = "#F3C200";
msg += "Veuillez saisir votre mail.\n";
}
.........................etc
}



Cette fonction se rapporte donc à un formulaire, dont le nom est "formulaire". J'aimerais pouvoir utiliser cette fonction pour plusieurs formulaires, donc en créant une variable du nom du formulaire.

J'ai donc pensé à ça :

function check(form) {
var msg = "";
if (document.form.mail.value != "") {
indexAroba = document.form.mail.value.indexOf('@');
indexPoint = document.form.mail.value.indexOf('.');
if ((indexAroba < 0) || (indexPoint < 0)) {
document.form.mail.style.backgroundColor = "#F3C200";
msg += "Le mail est incorrect\n";
}
}
else {
document.form.mail.style.backgroundColor = "#F3C200";
msg += "Veuillez saisir votre mail.\n";
......
}


Mais le document.form.mail.style ne marche pas, j'ai essayé toutes les concaténations possibles, document.'+form+'.mail.style, document.",form,".mail.style.... et j'avoue que je bloque un peu.

Si quelqu'un sait, et j'espère parce que ça doit être assez évident quand on connait un minimum le javascript...
Merci !
A voir également:

1 réponse

stephane_mc2004 Messages postés 755 Date d'inscription   Statut Membre Dernière intervention   96
 
C'est normal que ça ne marche pas, car les noms des objets pareils s'y retrouvent...

crée plutôt une fonction

function check(nomFormulaire,mail)  {
...
..

}


et le nomFormulaire va etre remplacé par le nom du formulaire que tu va utiliser, mail sera utiliser pour designer le champ de e mail dans le nouveau formulaire.
0