#1 Le 21/08/2008, à 15:56
- Astier
[RESOLU] [JAVASCRIPT] Vérification formulaire et alert "global"
Bonjour,
J'essaye de réaliser la validation d'un formulaire via javascript en utilisant des expressions régulières. Le problème concerne la création d'une variable accumulant des éléments afin de rendre global le message d'erreur.
Ainsi, suite à la lecture de ce document http://www.ibisc.fr/~dupont/cours/JavaScript/formulaire/formulaire.doc et plus particulièrement de ce passage :
if (Formulaire.elements[i].value.length<2){
Erreur+="Renseigner le champ "+Formulaire.elements[i].name +".\n"; }Erreur+= permet d'accumuler les erreurs dans une même variable d'erreur.
//affichage de l'erreur
if (Erreur==""){
return true;
}
else{
alert(Erreur);
return false;
}
voilà ce que j'ai essayé de faire :
function soum ()
{
var n = document.enquete.nom.value;
var p = document.enquete.prenom.value;
var v = document.enquete.ville.value;
if (n != /[-a-zA-Z]/)
{
erreur+="NOM";
}
if (p != /[-a-zA-Z]/)
{
erreur+="Prénom";
}
if (v != /[-a-zA-Z]/)
{
erreur+="Ville";
}
if (erreur == "")
{
return true;
}
else
{
var msgerreur = "Les champs \n" + erreur + "posent problème.";
alert(msgerreur);
return false;
}
}
Le problème c'est que lorsque je teste ça en ne remplissant mal que l'un de ces trois champs, la fenêtre d'alerte affiche les trois champs comme posant problème.
Une idée du pourquoi ?
Merci, à bientôt.
Dernière modification par Astier (Le 21/08/2008, à 18:26)
Hors ligne
#2 Le 21/08/2008, à 16:48
- HP
Re : [RESOLU] [JAVASCRIPT] Vérification formulaire et alert "global"
bien, je crois avoir vu strictement le même code en formation il y a peu…
bon, je peux pas t'en dire plus, parce que perso, à 90% je préfère passer mon temps à faire de bonnes vérifications côté serveur… aussi est-il rare que ça m'en laisse pour m'amuser à faire ceci avec js…
faudrait que je regarde en fait… je l'ai déjà fait ton truc… ça doit traîner sur un de mes durs !
fait à près de 100% en js de base, juste un peu de jQuery en plus…
Dernière modification par HP (Le 21/08/2008, à 17:27)
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#3 Le 21/08/2008, à 18:15
- Keldath
Re : [RESOLU] [JAVASCRIPT] Vérification formulaire et alert "global"
Bonjour Astier !
Essaie ceci :
function soum ()
{
var erreur = "";
if (!/[a-zA-Z]/.test(n))
{
erreur+="NOM ";
}
if (!/[a-zA-Z]/.test(p))
{
erreur+="Prénom ";
}
if (!/[a-zA-Z]/.test(v))
{
erreur+="Ville ";
}
if (erreur == "")
{
return true;
}
else
{
var msgerreur = "Les champs \n" + erreur + "posent problème.";
alert(msgerreur);
return false;
}
}
Je t'ai rajouté la déclaration de la variable erreur, pour être propre
/[blabla]/ est un objet qui possède ses méthodes, tout comme tu peux appliquer la méthode length sur une chaîne directement : "blabla".length
/blabla/.test(c) vérifie si c respecte la regexp, et on met un ! devant pour dire qu'on veut le contraire.
Dernière modification par Keldath (Le 21/08/2008, à 18:20)
Hors ligne
#4 Le 21/08/2008, à 18:25
- Astier
Re : [RESOLU] [JAVASCRIPT] Vérification formulaire et alert "global"
Merci Keldath, ça marche parfaitement et merci également pour tes explications et tes talents pédagogiques
Et pour les amateurs, un autre sujet : http://forum.ubuntu-fr.org/viewtopic.php?id=246358
Merci encore et à bientôt.
Hors ligne
#5 Le 21/08/2008, à 19:15
- Keldath
Re : [RESOLU] [JAVASCRIPT] Vérification formulaire et alert "global"
Pour ton autre sujet, il semble avoir disparu... (soucis avec le forum sans doute).
EDIT : ah non, le voici reposté par herberts -> http://forum.kubuntu-fr.org/viewtopic.php?id=246388
De toute façon d'une manière générale, tester ta valeur pour voir si elle respecte telle ou telle syntaxe/casse, c'est quasi-inutile (pour le premier problème évoqué dans ce topic principalement en fait, après ça dépend des cas) -> autant forcer la mise en majuscules quelle que soit ta valeur. Par exemple :
<input name="nom" type="text" onblur="this.value=this.value.toUpperCase();">
EDIT2 : oups, il est vrai qu'avec ceci tu acceptes aussi les caractères autres que les lettres, donc pas bon
Dernière modification par Keldath (Le 21/08/2008, à 19:41)
Hors ligne