Javascript -concaténation dans une fonction

Fermé
Ddjo - 8 déc. 2008 à 11:23
stephane_mc2004 Messages postés 755 Date d'inscription samedi 12 juillet 2008 Statut Membre Dernière intervention 8 février 2011 - 8 déc. 2008 à 14:58
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 samedi 12 juillet 2008 Statut Membre Dernière intervention 8 février 2011 96
8 déc. 2008 à 14:58
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