Probleme controle formulaire

Signaler
Messages postés
2
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
21 septembre 2005
-
Messages postés
5
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
3 octobre 2005
-
Bonjour à tous, je suis débutant en javascript, je cherche a faire des
contrôles sur la saisie d'un formulaire. J'ai un problème au niveau du
controle de saisie du login qui n'accepte que les caractères
alphanumériques sous firefox. en effet quand je teste le script sous ie
ca marche mais sous firefox même quand je met des chiffres dans le
champs de texte login il me dit qui y a des caractères spéciaux. par
contre si je rappuie une deuxième fois sur valider ca marche, c'est
bizarre.

si quelqu'un peut m'aider à améliorer la partie qui controle les caractères spéciaux ca serait sympa merci.



<script type="text/javascript">



function controle() {

var login = document.forms["inscription"].elements["login"].value;

var pass1 = document.forms["inscription"].elements["pass1"].value;

var pass2 = document.forms["inscription"].elements["pass2"].value;

var mail = document.forms["inscription"].elements["mail"].value;

var verif = /^[a-zA-Z0-9]+$/gi;



if (login == "" || login.length < "2" || login.length > "9") {

alert("Veuillez saisir un login entre 2 et 9 caractères!");

return false;

}



if (verif.test(login)==false) {

alert("caractères spéciaux");

return false;

}



if ( pass1 == "" || pass1.length < "4" || pass1.length > "8" ) {

alert("Veuillez saisir un pass entre 4 et 8 caractères");

return false;

}

if (pass1 != pass2) {

alert("Les mots de pass saisies ne sont pas identiques");

return false;

}

if (mail.indexOf('@') == -1) {

alert("Ce n'est pas une adresse électronique!");

return false;

}

}

</script>

5 réponses

Messages postés
275
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
28 avril 2006
10
Salut,



Plutôt que:



document.forms["inscription"].elements["login"].value



Tu devrais plutôt utiliser:

document.getElementById("login").value


Dans ton HTML il faut que ton Input ait:

name="login" ET id="login"
Messages postés
2
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
21 septembre 2005

oui tu as raison c'est mieu mais ca ne résolu pas mon problème
malheuresement. je comprend pas cet erreur c'est trop bizarre, avec
mozilla firefox
si je met que des chiffres dans le champs de saisie "login" et que je
laisse vide les autres champs. j'appuie une fois sur valider j'ai :


alert("Veuillez saisir un pass entre 4 et 8 caractères");


mais si je ne change absolument rien et que je rappuie une deuxieme fois j'ai :


alert("caractères spéciaux"); alors qu'il y a que des chiffres ???





voici le code du formulaire au cas ou :





<form enctype="multipart/form-data" action="inscriptions.php"
method="post" onSubmit="return controle()" name="inscription">


Login :,

,

<!-- 2eme ligne -->

----

Mot de passe :,

,

<!-- 3eme ligne -->

----

Confirmer le passe :,

,

----

Adresse E-Mail :,



&nbsp; &nbsp; &nbsp; &nbsp;Tous les champs sont
obligatoires.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Le Login est déja utilisé








<center>


</center>


</form>





voilà si quelqu'un peut m'aider. Merci
Messages postés
275
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
28 avril 2006
10
As-tu testé ton expression régulière ? ICI
Messages postés
275
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
28 avril 2006
10
J'ai remarqué ça dans ton HTML:



<td width='223'></td>



Tu essayes de mettre une variable PHP ici ?



Si c'est le cas, ce devrait être:



<td width='223'>'></td>
Messages postés
5
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
3 octobre 2005

bonjour,

j'ai exactement le meme probleme...
je viens de supprimer le g (pour toi dans : var verif = /^[a-zA-Z0-9]+$/gi;), et cela a l'air de marcher (sur toute la chaine de caractere)...

cordialement.