Code javascript pour valider un formulaire
ATTENTION tout ceci n'est plus nécessaire et est fait directement par le navigateur depuis HTML5
ne pas prendre en considération ces informations, c'était la bonne façon de faire en 2008 et plus maintenant en 2014
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" >
et ajouter l'option 'onSubmit="return validForm(this)"' a la balise form de votre formulaire.
(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);
}
}