Problème de validation de champs de formulaire

Signaler
Messages postés
42
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
17 juillet 2007
-
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
-
Afin
de contrôler les champs de mon formulaire, j'ai inséré une fonction
qui teste caractère par caractère pour vérifier si un tel champs
contient de caractères interdits.

ça a marché avec les chiffres mais pas avec les symboles:
'+' '-'
'/' '('
')'. Pourquoi?



var s;

for(var i = 0; i < f[3].value.length; i++)

{



// le caractere est stocké dans s.

s = f[3].value.charAt(i);



// Caractères non valides :chiffres, parenthèses, "/", "-" et "+".

if( ((s >= 0) && (s <= 9))



{

alert('Le numéro postal ne peut comporter que des chiffres, '

+ ', parentheses, "/", "-" et "+".');

return(false);

}



}

2 réponses

Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
To if vérifie seulement si le chiffre est entre 0 et 9 regarde comme il le faut. Aussi ton return est mal approprié car il arrête la fonction , donc la boucle va s'executé une seule fois.
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Salut!

Pour éviter du code inutile, je te propose d'utiliser les expressions régulières.


if
(f
[3].value
.search
(/[^0-9\
/\
-\
+()]/)
!=
-1) {
alert
('Le numéro postal ne peut comporter que des chiffres
, '

+ '
, parentheses
,
"/",
"-" et
"+".'
);
return(false);

}

A+, Ghislain