Formulaire vérifié dynamiquement en javascript
Bonjour ,
voila pour mon site web j'ai crée un formulaire d'inscription et afin d'éviter au visiteur de le retaper 5 fois de suite parcequ'il a mal tapé son mot de passe ou autre chose ;) je voulais que mon formulaire soit vérifié en temps réel .
Ayant les connaissances de bases en javascript , j'ai décidé d'utiliser cette techonologie .
Voici donc ce que j'ai écrit :
-Le code html du formulaire :
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 58 59 60 61 62 63 64 65 66 67
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Inscription</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
//insertion du fichier javascript
<script type="text/javascript" src="validation_javascript.js"></script>
</head>
<body>
<h1>Inscrivez-vous</h1>
<form id="forminscription" action="validation_inscrip.php" method="post" onsubmit="">
<fieldset>
<legend>Informations générales</legend>
<table>
<tr>
<td>
<label for="pseudo" id="pseudolabel" >Nom de scène</label>
</td>
<td>
<input type="text" name="pseudo" id="pseudo" value="Nom de scène" onblur="verifpseudo()" />
<tr>
<td>
<label for="mdp" id="mdp" >Mot de passe</label>
</td>
<td>
<input type="password" name="mdp" id="mdp" value="Mot de passe" onblur="verifregex(mdp);"/>
</td></tr>
<tr>
<td>
<label for="confirmmdp" id="confirmdp">Confirmation mot de passe</label>
</td>
<td>
<input type="password" name="confirmmdp" id="confirmmdp" onblur="verifconfirm (confirmmdp , mdp) ; " />
</td></tr>
<tr>
<td>
<label for="email" id="email" >Email</label>
</td>
<td>
<input type="text" name="email" id="email" onblur="verifregex(email)" />
</td></tr>
<tr>
<td>
<label for="confirmemail" id="confirmemail" >Confirmation Email</label>
</td>
<td>
<input type="text" name="confirmemail" id="confirmemail" onblur="verifconfirm (confirmemail , email)" />
</td></tr>
</table>
</fieldset>
<input type="button" value="inscription" onclick="veriffinale();" />
</body>
</html> |
-et le code javascript :
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
| //fonction permettant de verifier le champ pseudo
function verifpseudo()
{
//on recuper la valeur de pseudo et on teste sa longueur
var pseudo = document.getElementById("forminscription").elements["pseudo"].value;
if(pseudo.length <2 || pseudo.length >50)
{
//si la longeur est <2 ou >50 alors :
//on recupere le champ pseudo et on rend le fond rouge avec #fba
var pseudocss = document.getElementById("forminscription").elements["pseudo"];
pseudocss.style.backgroundColor = "#fba";
//Puis on veut insrer à la suite du champ , un petit encadré qui dit "le pseudo n'est pas valide"
var encadre = document.createElement('p');
pseudocss.appendChild(encadre);
var encadre_text = document.createTextNode("Votre mot de passe est faux");
encadre.appendChild(encadre_text);
//on retourne false en vue de la fonction finale de vérification
return false;
}
else
{
//sinon on laisse le fond avec la couleur par defaut
var pseudocss = document.getElementById("forminscription").elements["pseudo"];
pseudocss.style.backgroundColor = "";
return true;
}
}
//fonction permettant de verifier le mot de passe et l'adresse email
function verifregex(champ)
{
//on recupere d'abord la valeur du champ (mdp ou email)
var champverif = document.getElementById("forminscription").elements["champ"].value;
var regex;
var typec[a-z0-9._-]\.[a-z]{2.4}$/;
typechamp = "mail";
conditions = "Il doit être de la forme : lettresLETTRES123456789@messagerie.extension ou messagerie est par exemple \"hotmail\" et l'extention ne contient pas plus de 4 lettres.";
}
//ensuite on fait la verfication du champ en fonction de la regex
if(!regex.test(champverif))
{
//on recupere le champ concerné
var champcss = document.getElementById("forminscription").elements["champ"];
//pui on lui assigne la couleur rouge
chamcss.style.backgroundColor = "#fba";
//on s'occcupe ensuite d'afficher un petit encadré informant le visiteur de l'erreur qu'il a commise
var encadre = document.createElement("p");
champcss.appendChild("encadre");
var encadre_text = document.createTextNode("Le" + typechamp + champverif + "'est pas valide : " + conditions );
encadre.appendChild(encadre_text);
//on retourne false pour la fonction de verif finale
return false;
}
else
{
//on colorie le champ avec la couleur par defaut
var champcss = document.getElementById('forminscription').elements['champ'];
champcss.style.backgroundColor = "";
// on retourne true pour la fonction de verif finale
return true;
}
}
//fonction permettant de verifier que les confirmation de mot de passe et d'email sont bonne.
function verifconfirm (champ , champoriginal)
{
//on initialise les variables :
var champverif = document.getElementById("forminscription").elements["champ"].value;
var valeuroriginal = document.getElementById("forminscription").elements["champoriginal"].value;
var champcss = document.getElementById("forminscription").elements["champ"];
var encadre = document.createElement("p");
var encadre_text = document.createTextNode("Les " + champ + "s que vous avez entré ne sont pas identiques");
//on doit donc verifier que les 2 mots de passe sont identiques
if (champverif != valeuroriginal)
{
//on recuper donc l'input que l'on verifie et on le colorie en rouge
champcss.style.backgroundColor("#fba");
//puis on affiche un message informant le visiteur de l'erreur qu'il à commise
champcss.appendChild("encadre");
encadre.appendChild("encadre_text");
return false;
}
else
{
//sinon on laisse la couleur par defaut
champcss.style.backgroundColor("#fba");
return true;
}
}
}
function veriffinale()
{
//on verifie si les fonction de verification retournent bien toutes true
if ( verifpseudo () == true && verifregex () == true && verifconfirm () == true)
{
//on autorise l'envoi
alert("c'est ok");
}
else
{
//sinon on affiche un message d'erreur
alert("Le formulaire n'a pas été correctement rempli");
}
} |
Voila
Pour l'instant , seul le formulaire s'affiche .Aucune trace du fond des champs qui devraient se colorier en rouge lorsqu'une erreur est commise ni du message d'erreur qui doit s'affichier à coté .Ne parlon meme pas de la fonction finale qui doit tout verifier avant d'autoriser le submit :cry:!
Comme rien ne mache avec le javascript , je me deman de si je ne l'ai pas mal inséré mais je n'arrives pas a trouver l'erreur .
De plus il y a peut etre d'autres erreurs .
Si quelqun arrive a trouver ces erreur ca m'enleverait une sacré epine du pied .
merci d'avance pour toutes les reponses