Code javascript pour valider un formulaire
Voici le code source javascript d'une validation de formulaire dans un fichier externe (.js). Pour plus d'explication sur l'utilisation voir l'article :
Validation d'un formulaire.
Pour utiliser cette validation il suffit d'ajouter ce javascript externe avec la ligne :
- <script type="text/javascript" src="validation.js" charset="iso-8859-1" ></script>
et ajouter l'option '
onSubmit="return validForm(this)"' a la balise <form> de votre formulaire. Exemple :
- <form action=page.php method=post name=formulaire onSubmit="return validation(this,'fr')">
(l'ajout du charset pour l'appel du script est facultatif si la page et le script on le même encodage, par contre ceci est util pour faire marcher un script qui a un autre encodage que sur la page)
j'ai mis dans ce script un try et catch pour afficher des erreur qui pourrais survenir pour aidé le débogage.
Ce script est fait pour marcher en 2 langue: français et anglais.
Code source du fichier validation.js :
function validation(passForm,lang)
{
try
{
var nb_erreur =0;
var fra = "";
var eng = "";
var fra_debut = "_____________________________________________________________\n\n";
fra_debut += "Le formulaire n\'a pas été envoyé. Vous devez remplir tous les champs\n";
fra_debut += "obligatoires, veuillez corriger et envoyer de nouveau le formulaire. Merci!\n";
fra_debut += "_____________________________________________________________\n\n";
var eng_debut = "_____________________________________________________________\n\n";
eng_debut += "The form has not been sent. You must fill in all the required fields,\n";
eng_debut += "please correct and resubmit the form. Thank you!\n";
eng_debut += "_____________________________________________________________\n\n";
/* valider un champ si vide */
if (passForm.nom.value == "")
{
nb_erreur++;
fra += " Nom\n";
eng += " Name\n";
passForm.nom.className = 'input_style input_erreur';
}
else { passForm.nom.className = 'input_style'; }
/* validation d'un courriel */
if (passForm.courriel.value == "")
{
nb_erreur++;
fra += " Courriel\n";
eng += " Email\n";
passForm.courriel.className = 'input_style input_erreur';
}
/* champ courriel rempli, on test maintenant si courriel valide */
else
{
/* test si un format valide de courriel */
if ((passForm.courriel.value.lastIndexOf(".") < passForm.courriel.value.indexOf("@")+3
|| passForm.courriel.value.lastIndexOf(".") > passForm.courriel.value.length-3
|| passForm.courriel.value.indexOf("@") < 1 ) || passForm.courriel.value.length < 3
|| passForm.courriel.value.indexOf("@") != passForm.courriel.value.lastIndexOf("@") )
{ /* format invalide de courriel */
nb_erreur++;
fra += " Courriel (assurez-vous d'entrer un format valide moi@hotmail.com) \n";
eng += " Email (make sure you enter a valid email adress i.e.: me@hotmail.com)\n";
passForm.courriel.className = 'input_style input_erreur';
}
else
{ /* format valide */
passForm.courriel.className = 'input_style';
}
}
/* cree message d'erreur */
fra_une = "- Vous devez entrer le champ suivant :\n";
fra_plusieur = "- Vous devez entrer les champs suivants :\n";
eng_infos = "You must fill this field:\n";
eng_infos2 = "You must fill in the following fields:\n";
var tout = ""; /* tout le message afficher */
if (lang == 'en')
{
tout += eng_debut;
if (nb_erreur > 1) tout += eng_infos2; else tout += eng_infos;
tout += eng;
}
else
{
tout += fra_debut;
if (nb_erreur > 1) tout += fra_plusieur; else tout += fra_une;
tout += fra;
}
if (nb_erreur == 0)
{
return true;
}
else
{
alert(tout);
return false;
}
}
catch(e)
{
alert('Erreur avec la fonction javascripot : validation()\n' + e.message);
}
}
Article écrit le 4 avril 2009
Article modifié le 13 juillet 2010
Autres articles sous la même catégorie