Controle du mail dans un formulaire
Résolu
shoezman13
Messages postés
15
Statut
Membre
-
shoezman13 Messages postés 15 Statut Membre -
shoezman13 Messages postés 15 Statut Membre -
Bonjour,
Alors voilà, j'ai un formulaire en html, et je contrôle la saisie de chaque donnée en javascript. Pour l'instant je vérifie juste que l'utilisateur a bien rempli toutes les cases et qu'il a mis une adresse mail qui semble correcte (c'est à dire qu'elle présente un @, un point, et un certain nombre de lettre après l'@) Voici mon script :
function verif(){
if(identification.mail.value=="")
{
alert ('Veuillez indiquer votre mail');
identification.mail.focus();
return false;
}
testm=false;
if(identification.mail.value!="")
{
for (var j=1 ; j<(a.length) ; j++) {
if (a.charAt(j)=='@') {
if (j<(a.length-4)){
for (var k=j ; k<(a.length-2) ; k++) {
if (a.charAt(k)=='.')
{
testm = true;
}
}
}
}
}
}
if (testm = false)
{
alert('Votre adresse mail est incorrecte');
identification.mail.focus();
return false ;
}
if(identification.nom.value == "")
{
alert ('Veuillez entrer votre nom');
identification.nom.focus();
return false;
}
...
...
// ça continue encore alors je coupe
...
...
}
Le problème c'est que avec ceci, quand le mail ne possède pas de "@", l'alerte ne s'affiche pas... par contre si le champs est vide, ça fonctionne...
Si par hasard vous arrivez à comprendre ce que je veux dire et que vous pouvez m'aider ça serait super :P
Merci
Alors voilà, j'ai un formulaire en html, et je contrôle la saisie de chaque donnée en javascript. Pour l'instant je vérifie juste que l'utilisateur a bien rempli toutes les cases et qu'il a mis une adresse mail qui semble correcte (c'est à dire qu'elle présente un @, un point, et un certain nombre de lettre après l'@) Voici mon script :
function verif(){
if(identification.mail.value=="")
{
alert ('Veuillez indiquer votre mail');
identification.mail.focus();
return false;
}
testm=false;
if(identification.mail.value!="")
{
for (var j=1 ; j<(a.length) ; j++) {
if (a.charAt(j)=='@') {
if (j<(a.length-4)){
for (var k=j ; k<(a.length-2) ; k++) {
if (a.charAt(k)=='.')
{
testm = true;
}
}
}
}
}
}
if (testm = false)
{
alert('Votre adresse mail est incorrecte');
identification.mail.focus();
return false ;
}
if(identification.nom.value == "")
{
alert ('Veuillez entrer votre nom');
identification.nom.focus();
return false;
}
...
...
// ça continue encore alors je coupe
...
...
}
Le problème c'est que avec ceci, quand le mail ne possède pas de "@", l'alerte ne s'affiche pas... par contre si le champs est vide, ça fonctionne...
Si par hasard vous arrivez à comprendre ce que je veux dire et que vous pouvez m'aider ça serait super :P
Merci
Configuration: Windows XP Firefox 2.0.0.14
2 réponses
-
Je suis pas sur d'avoir compris ce que tu veux exactement mais si c'est vérifier que la syntaxe d'une adresse mail est valide ou non tu devrais voir ici https://openclassrooms.com/fr/courses par exemple.
-
Bonjour,
le problème est que tu ne testes pas si l'@ y est.
Il faudrait que tu fasses un truc du style
for (var j=1 ; j<(a.length) ; j++) { if (a.charAt(j)=='@') { test@=true; suite de ton code... } } if(test@== false){ alert('Votre adresse mail est incorrecte'); }
-
ça y est j'ai compris pourquoi ça marchait pas... en fait j'avais changé ma fonction d'origine et j'avais pas les memes parametres d'entrée dans la fonction, ensuite il devait y avoir des petites erreurs par ci par là. Finalement tout fonctionne bien donc pour ceux que ça interesse voila le code que j'obtiens en fin de compte :
function verif(){
testm=false;
if (identification.mail.value == "")
{
alert('Veuillez saisir votre adresse mail');
identification.mail.focus();
return false ;
}
if (identification.mail.value != "")
{
for (var j=1 ; j<(identification.mail.value.length) ; j++) {
if (identification.mail.value.charAt(j)=='@') {
if (j<(identification.mail.value.length-4)){
for (var k=j ; k<(identification.mail.value.length-2) ; k++) {
if (identification.mail.value.charAt(k)=='.')
{
testm = true;
}
}
}
}
}
}
if (testm==false)
{
alert('Votre adresse mail est incorrecte.');
identification.mail.focus();
return false ;
}
Merci pour vos réponses,
A bientot
-