J'ai un souci dans le script pour les contr=F4le des champs de mon
formulaire:
pour le contr=F4le du:
- Nom =3D OK
- Pr=E9nom =3D OK
- Telephone =3D aucun contr=F4le effectu=E9
- eMail =3D OK
Je n'arrive pas =E0 contr=F4ler le champ du telephone.
pouvez vous m'aider ?
<html>
<head>
</head>
<script type=3D"text/javascript">
// Boucle de validation
function validateForm(form) {
if (isNotEmpty(form.nom)) {
if (isNotEmpty(form.prenom)) {
if (isNotEmpty(form.telephone)) {
if (isNumber(form.telephone)) {
if (isLen10(form.telephone)) {
if (isNotEmpty(form.eMail)) {
if (isEMailAddr(form.eMail)) {
return true;
}
}
}
}
}
}
}
return false;
}
// V=E9rifie si un champ a bien =E9t=E9 renseign=E9
function isNotEmpty(elem) {
var str =3D elem.value;
var re =3D /.+/;
if(!str.match(re)) {
alert("Veuillez renseigner les champs obligatoires.");
setTimeout("focusElement('" + elem.form.name + "', '" +
elem.name + "')", 0);
return false;
} else {
return true;
}
}
// V=E9rifie si l'adresse e-mail est valide
function isEMailAddr(elem) {
var str =3D elem.value;
var re =3D /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
if (!str.match(re)) {
alert("Veuillez v=E9rifier le format de votre adresse e-mail.");
setTimeout("focusElement('" + elem.form.name + "', '" +
elem.name + "')", 0);
return false;
} else {
return true;
}
}
// V=E9rifie si un champ contient 10 caract=E8res
function isLen10(elem) {
var str =3D elem.value;
var re =3D /^\d{10}\b/;
if (!str.match(re)) {
alert("Veuillez respecter le format du num=E9ro de t=E9l=E9phone :
'0311223344' pour '03 11 22 33 44'.");
setTimeout("focusElement('" + elem.form.name + "', '" +
elem.name + "')", 0);
return false;
} else {
return true;
}
}
// Positionne le curseur dans un champ donn=E9
function focusElement(formName, elemName) {
var elem =3D document.forms[formName].elements[elemName];
elem.focus();
elem.select();
}
</script>
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal PONCET
- Telephone = aucun contrôle effectué function validateForm(form) { ... if (isNumber(form.telephone)) { ...}
Salut,
J'ai peut-être loupé un truc, mais où est définie la fonction "isNumber()" ? Sinon, à part ça, fortiche l'imbrication des "if", mais totalement imbitable ! Pourquoi ne pas utiliser les opérateurs logiques ?
- Telephone = aucun contrôle effectué
function validateForm(form) {
... if (isNumber(form.telephone)) {
...}
Salut,
J'ai peut-être loupé un truc, mais où est définie la fonction "isNumber()" ?
Sinon, à part ça, fortiche l'imbrication des "if", mais totalement
imbitable ! Pourquoi ne pas utiliser les opérateurs logiques ?
- Telephone = aucun contrôle effectué function validateForm(form) { ... if (isNumber(form.telephone)) { ...}
Salut,
J'ai peut-être loupé un truc, mais où est définie la fonction "isNumber()" ? Sinon, à part ça, fortiche l'imbrication des "if", mais totalement imbitable ! Pourquoi ne pas utiliser les opérateurs logiques ?
Olivier Miakinen
Bonjour à tous,
J'ai un souci dans le script pour les contrôle des champs de mon formulaire: pour le contrôle du: - Nom = OK - Prénom = OK - Telephone = aucun contrôle effectué
Pourtant, tu as semble-t-il un code pour faire ça : var re = /^d{10}b/; D'après le format que tu demandes j'aurais mis « $ » à la place de « b », mais ça devrait déjà pas mal fonctionner comme ça, non ?
- eMail = OK
Ah non ! Ton code n'est pas bon puisque, par exemple, mon adresse <om+ sera refusée, de même que de nombreuses autres adresses contenant au moins un caractère « + » ou « _ ».
Tu as : var re = /^[w-]+(.[w-]+)*@([w-]+.)+[a-zA-Z]{2,7}$/;
Inversement, je ne sais pas si les caractères accentués ne risquent pas d'être acceptés par w quand la locale le permet.
Voir <http://faqfclphp.free.fr/#rub5.3> pour de meilleurs exemples. C'est la FAQ pour PHP, mais les expressions rationnelles de type PCRE sont les mêmes en JavaScript (du moins tant qu'on utilise des syntaxes simples, ce qui est bien le cas ici).
Je te propose par exemple : var re = /^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/
Bonjour à tous,
J'ai un souci dans le script pour les contrôle des champs de mon
formulaire:
pour le contrôle du:
- Nom = OK
- Prénom = OK
- Telephone = aucun contrôle effectué
Pourtant, tu as semble-t-il un code pour faire ça :
var re = /^d{10}b/;
D'après le format que tu demandes j'aurais mis « $ » à la place de
« b », mais ça devrait déjà pas mal fonctionner comme ça, non ?
- eMail = OK
Ah non ! Ton code n'est pas bon puisque, par exemple, mon adresse
<om+news@miakinen.net> sera refusée, de même que de nombreuses autres
adresses contenant au moins un caractère « + » ou « _ ».
Tu as :
var re = /^[w-]+(.[w-]+)*@([w-]+.)+[a-zA-Z]{2,7}$/;
Inversement, je ne sais pas si les caractères accentués ne risquent pas
d'être acceptés par w quand la locale le permet.
Voir <http://faqfclphp.free.fr/#rub5.3> pour de meilleurs exemples.
C'est la FAQ pour PHP, mais les expressions rationnelles de type PCRE
sont les mêmes en JavaScript (du moins tant qu'on utilise des syntaxes
simples, ce qui est bien le cas ici).
Je te propose par exemple :
var re = /^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/
J'ai un souci dans le script pour les contrôle des champs de mon formulaire: pour le contrôle du: - Nom = OK - Prénom = OK - Telephone = aucun contrôle effectué
Pourtant, tu as semble-t-il un code pour faire ça : var re = /^d{10}b/; D'après le format que tu demandes j'aurais mis « $ » à la place de « b », mais ça devrait déjà pas mal fonctionner comme ça, non ?
- eMail = OK
Ah non ! Ton code n'est pas bon puisque, par exemple, mon adresse <om+ sera refusée, de même que de nombreuses autres adresses contenant au moins un caractère « + » ou « _ ».
Tu as : var re = /^[w-]+(.[w-]+)*@([w-]+.)+[a-zA-Z]{2,7}$/;
Inversement, je ne sais pas si les caractères accentués ne risquent pas d'être acceptés par w quand la locale le permet.
Voir <http://faqfclphp.free.fr/#rub5.3> pour de meilleurs exemples. C'est la FAQ pour PHP, mais les expressions rationnelles de type PCRE sont les mêmes en JavaScript (du moins tant qu'on utilise des syntaxes simples, ce qui est bien le cas ici).
Je te propose par exemple : var re = /^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/
kurtz le pirate
In article , foucault wrote:
Bonjour à tous,
J'ai un souci dans le script pour les contrôle des champs de mon formulaire: pour le contrôle du: - Nom = OK - Prénom = OK - Telephone = aucun contrôle effectué - eMail = OK
Je n'arrive pas à contrôler le champ du telephone. pouvez vous m'aider ?
bla bla bla
pourquoi te compliquer la vie, un /d{10}/ devrait suffire non ?
-- klp
In article <1178899621.675029.182510@p77g2000hsh.googlegroups.com>,
foucault <foucault_martial@tiscali.fr> wrote:
Bonjour à tous,
J'ai un souci dans le script pour les contrôle des champs de mon
formulaire:
pour le contrôle du:
- Nom = OK
- Prénom = OK
- Telephone = aucun contrôle effectué
- eMail = OK
Je n'arrive pas à contrôler le champ du telephone.
pouvez vous m'aider ?
bla bla bla
pourquoi te compliquer la vie, un /d{10}/ devrait suffire non ?
J'ai un souci dans le script pour les contrôle des champs de mon formulaire: pour le contrôle du: - Nom = OK - Prénom = OK - Telephone = aucun contrôle effectué - eMail = OK
Je n'arrive pas à contrôler le champ du telephone. pouvez vous m'aider ?
bla bla bla
pourquoi te compliquer la vie, un /d{10}/ devrait suffire non ?
-- klp
foucault
Exacte,
il manquait à la copie cette partie du code excusez moi:
//Vérifie si un champ ne contient que des chiffres function isNumber(elem) { var str = elem.value; var re = /^[-]?d*.?d*$/; str = str.toString(); if (!str.match(re)) { alert("Veuillez respecter le format du numéro de téléphone : '0311223344' pour '03 11 22 33 44'."); setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0); return false; } return true; }
merci pour votre aide sinon pour le contrôle du mail je peut mettre ça sans problème ? c'est bon ? var re = /^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/
Exacte,
il manquait à la copie cette partie du code excusez moi:
//Vérifie si un champ ne contient que des chiffres
function isNumber(elem) {
var str = elem.value;
var re = /^[-]?d*.?d*$/;
str = str.toString();
if (!str.match(re)) {
alert("Veuillez respecter le format du numéro de téléphone :
'0311223344' pour '03 11 22 33 44'.");
setTimeout("focusElement('" + elem.form.name + "', '" +
elem.name + "')", 0);
return false;
}
return true;
}
merci pour votre aide
sinon pour le contrôle du mail je peut mettre ça sans problème ? c'est
bon ?
var re = /^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/
il manquait à la copie cette partie du code excusez moi:
//Vérifie si un champ ne contient que des chiffres function isNumber(elem) { var str = elem.value; var re = /^[-]?d*.?d*$/; str = str.toString(); if (!str.match(re)) { alert("Veuillez respecter le format du numéro de téléphone : '0311223344' pour '03 11 22 33 44'."); setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0); return false; } return true; }
merci pour votre aide sinon pour le contrôle du mail je peut mettre ça sans problème ? c'est bon ? var re = /^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/
Olivier Miakinen
il manquait à la copie cette partie du code excusez moi:
//Vérifie si un champ ne contient que des chiffres function isNumber(elem) { var str = elem.value; var re = /^[-]?d*.?d*$/;
Ceci accepte un nombre décimal en écriture anglosaxonne, ou une chaîne vide : - un signe négatif (optionnel) - des chiffres (optionnels) - un point décimal (optionnel) - des chiffres (optionnels)
str = str.toString(); if (!str.match(re)) { alert("Veuillez respecter le format du numéro de téléphone : '0311223344' pour '03 11 22 33 44'.");
Ce n'est pas du tout le format correspondant à un nombre décimal. Pour ça, utilise plutôt isLen10() en remplaçant b par $.
sinon pour le contrôle du mail je peut mettre ça sans problème ? c'est bon ? var re = /^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/
Oui. Toutes les adresses valides seront acceptées par cette expression. Quant aux adresses invalides, ce n'est qu'au moment de la demande de confirmation par courriel que tu pourras les détecter, en même temps que cela t'évitera de stocker une adresse valide mais n'appartenant pas à celui qui se sera inscrit sur ton site.
Attention : tu dois faire *aussi* les contrôles de validité sur le serveur, puisque n'importe qui peut t'envoyer ce qu'il veut en désactivant le contrôle JavaScript.
il manquait à la copie cette partie du code excusez moi:
//Vérifie si un champ ne contient que des chiffres
function isNumber(elem) {
var str = elem.value;
var re = /^[-]?d*.?d*$/;
Ceci accepte un nombre décimal en écriture anglosaxonne, ou une chaîne
vide :
- un signe négatif (optionnel)
- des chiffres (optionnels)
- un point décimal (optionnel)
- des chiffres (optionnels)
str = str.toString();
if (!str.match(re)) {
alert("Veuillez respecter le format du numéro de téléphone :
'0311223344' pour '03 11 22 33 44'.");
Ce n'est pas du tout le format correspondant à un nombre décimal. Pour
ça, utilise plutôt isLen10() en remplaçant b par $.
sinon pour le contrôle du mail je peut mettre ça sans problème ? c'est
bon ?
var re = /^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/
Oui. Toutes les adresses valides seront acceptées par cette expression.
Quant aux adresses invalides, ce n'est qu'au moment de la demande de
confirmation par courriel que tu pourras les détecter, en même temps que
cela t'évitera de stocker une adresse valide mais n'appartenant pas à
celui qui se sera inscrit sur ton site.
Attention : tu dois faire *aussi* les contrôles de validité sur le
serveur, puisque n'importe qui peut t'envoyer ce qu'il veut en
désactivant le contrôle JavaScript.
il manquait à la copie cette partie du code excusez moi:
//Vérifie si un champ ne contient que des chiffres function isNumber(elem) { var str = elem.value; var re = /^[-]?d*.?d*$/;
Ceci accepte un nombre décimal en écriture anglosaxonne, ou une chaîne vide : - un signe négatif (optionnel) - des chiffres (optionnels) - un point décimal (optionnel) - des chiffres (optionnels)
str = str.toString(); if (!str.match(re)) { alert("Veuillez respecter le format du numéro de téléphone : '0311223344' pour '03 11 22 33 44'.");
Ce n'est pas du tout le format correspondant à un nombre décimal. Pour ça, utilise plutôt isLen10() en remplaçant b par $.
sinon pour le contrôle du mail je peut mettre ça sans problème ? c'est bon ? var re = /^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/
Oui. Toutes les adresses valides seront acceptées par cette expression. Quant aux adresses invalides, ce n'est qu'au moment de la demande de confirmation par courriel que tu pourras les détecter, en même temps que cela t'évitera de stocker une adresse valide mais n'appartenant pas à celui qui se sera inscrit sur ton site.
Attention : tu dois faire *aussi* les contrôles de validité sur le serveur, puisque n'importe qui peut t'envoyer ce qu'il veut en désactivant le contrôle JavaScript.
Olivier Miakinen
Le 11/05/2007 18:57, kurtz le pirate répondait à foucault :
pourquoi te compliquer la vie, un /d{10}/ devrait suffire non ?
/^d{10}$/ parce que sinon le texte "abc$@12345678901234567890#&" sera accepté aussi.
Le 11/05/2007 18:57, kurtz le pirate répondait à foucault :
pourquoi te compliquer la vie, un /d{10}/ devrait suffire non ?
/^d{10}$/ parce que sinon le texte "abc$@12345678901234567890#&" sera
accepté aussi.
Le 11/05/2007 18:57, kurtz le pirate répondait à foucault :
pourquoi te compliquer la vie, un /d{10}/ devrait suffire non ?
/^d{10}$/ parce que sinon le texte "abc$@12345678901234567890#&" sera accepté aussi.
foucault
/^d{10}$/ parce que sinon le texte "abc$@12345678901234567890#&" sera accepté aussi.
Merci pour votre contribution. C'est très sympa, Où je peux trouver un lexique pour construire les expressions. Après vos conseilles voilà le résultat, y a t'il une manière plus propre et compatible pour ce code:
<script type="text/javascript"> // Boucle de validation function validateForm(form) { if (isNotEmpty(form.nom)) { if (isNotEmpty(form.prenom)) { if (isNotEmpty(form.telephone)) { if (isNumber(form.telephone)) { if (isLen10(form.telephone)) { if (isNotEmpty(form.eMail)) { if (isEMailAddr(form.eMail)) { return true; } } } } } } } return false; }
// Vérifie si un champ a bien été renseigné function isNotEmpty(elem) { var str = elem.value; var re = /.+/; if(!str.match(re)) { alert("Veuillez renseigner les champs obligatoires."); setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0); return false; } else { return true; } }
// Vérifie si l'adresse e-mail est valide function isEMailAddr(elem) { var str = elem.value; var re = /^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/;
if (!str.match(re)) { alert("Veuillez vérifier le format de votre adresse e-mail."); setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0); return false; } else { return true; } }
//Vérifie si un champ ne contient que des chiffres function isNumber(elem) { var str = elem.value; var re = /^[-]?d*.?d*$/; str = str.toString(); if (!str.match(re)) { alert("Veuillez respecter le format du numéro de téléphone : '0311223344' pour '03 11 22 33 44'."); setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0); return false; } return true; }
// Vérifie si un champ contient 10 caractères function isLen10(elem) { var str = elem.value; var re = /^d{10}$/; if (!str.match(re)) { alert("Veuillez respecter le format du numéro de téléphone : '0311223344' pour '03 11 22 33 44'."); setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0); return false; } else { return true; } }
// Positionne le curseur dans un champ donné function focusElement(formName, elemName) { var elem = document.forms[formName].elements[elemName]; elem.focus(); elem.select(); } </script>
/^d{10}$/ parce que sinon le texte "abc$@12345678901234567890#&" sera
accepté aussi.
Merci pour votre contribution. C'est très sympa,
Où je peux trouver un lexique pour construire les expressions.
Après vos conseilles voilà le résultat, y a t'il une manière plus
propre et compatible pour ce code:
<script type="text/javascript">
// Boucle de validation
function validateForm(form) {
if (isNotEmpty(form.nom)) {
if (isNotEmpty(form.prenom)) {
if (isNotEmpty(form.telephone)) {
if (isNumber(form.telephone)) {
if (isLen10(form.telephone)) {
if (isNotEmpty(form.eMail)) {
if (isEMailAddr(form.eMail)) {
return true;
}
}
}
}
}
}
}
return false;
}
// Vérifie si un champ a bien été renseigné
function isNotEmpty(elem) {
var str = elem.value;
var re = /.+/;
if(!str.match(re)) {
alert("Veuillez renseigner les champs obligatoires.");
setTimeout("focusElement('" + elem.form.name + "', '" +
elem.name + "')", 0);
return false;
} else {
return true;
}
}
// Vérifie si l'adresse e-mail est valide
function isEMailAddr(elem) {
var str = elem.value;
var re = /^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/;
if (!str.match(re)) {
alert("Veuillez vérifier le format de votre adresse e-mail.");
setTimeout("focusElement('" + elem.form.name + "', '" +
elem.name + "')", 0);
return false;
} else {
return true;
}
}
//Vérifie si un champ ne contient que des chiffres
function isNumber(elem) {
var str = elem.value;
var re = /^[-]?d*.?d*$/;
str = str.toString();
if (!str.match(re)) {
alert("Veuillez respecter le format du numéro de téléphone :
'0311223344' pour '03 11 22 33 44'.");
setTimeout("focusElement('" + elem.form.name + "', '" +
elem.name + "')", 0);
return false;
}
return true;
}
// Vérifie si un champ contient 10 caractères
function isLen10(elem) {
var str = elem.value;
var re = /^d{10}$/;
if (!str.match(re)) {
alert("Veuillez respecter le format du numéro de téléphone :
'0311223344' pour '03 11 22 33 44'.");
setTimeout("focusElement('" + elem.form.name + "', '" +
elem.name + "')", 0);
return false;
} else {
return true;
}
}
// Positionne le curseur dans un champ donné
function focusElement(formName, elemName) {
var elem = document.forms[formName].elements[elemName];
elem.focus();
elem.select();
}
</script>
/^d{10}$/ parce que sinon le texte "abc$@12345678901234567890#&" sera accepté aussi.
Merci pour votre contribution. C'est très sympa, Où je peux trouver un lexique pour construire les expressions. Après vos conseilles voilà le résultat, y a t'il une manière plus propre et compatible pour ce code:
<script type="text/javascript"> // Boucle de validation function validateForm(form) { if (isNotEmpty(form.nom)) { if (isNotEmpty(form.prenom)) { if (isNotEmpty(form.telephone)) { if (isNumber(form.telephone)) { if (isLen10(form.telephone)) { if (isNotEmpty(form.eMail)) { if (isEMailAddr(form.eMail)) { return true; } } } } } } } return false; }
// Vérifie si un champ a bien été renseigné function isNotEmpty(elem) { var str = elem.value; var re = /.+/; if(!str.match(re)) { alert("Veuillez renseigner les champs obligatoires."); setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0); return false; } else { return true; } }
// Vérifie si l'adresse e-mail est valide function isEMailAddr(elem) { var str = elem.value; var re = /^[.A-Za-z0-9+_-]+@[.A-Za-z0-9-]+$/;
if (!str.match(re)) { alert("Veuillez vérifier le format de votre adresse e-mail."); setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0); return false; } else { return true; } }
//Vérifie si un champ ne contient que des chiffres function isNumber(elem) { var str = elem.value; var re = /^[-]?d*.?d*$/; str = str.toString(); if (!str.match(re)) { alert("Veuillez respecter le format du numéro de téléphone : '0311223344' pour '03 11 22 33 44'."); setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0); return false; } return true; }
// Vérifie si un champ contient 10 caractères function isLen10(elem) { var str = elem.value; var re = /^d{10}$/; if (!str.match(re)) { alert("Veuillez respecter le format du numéro de téléphone : '0311223344' pour '03 11 22 33 44'."); setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0); return false; } else { return true; } }
// Positionne le curseur dans un champ donné function focusElement(formName, elemName) { var elem = document.forms[formName].elements[elemName]; elem.focus(); elem.select(); } </script>
kurtz le pirate
In article <4644a3ff$, Olivier Miakinen <om+ wrote:
Le 11/05/2007 18:57, kurtz le pirate répondait à foucault :
pourquoi te compliquer la vie, un /d{10}/ devrait suffire non ?
/^d{10}$/ parce que sinon le texte "abc$@12345678901234567890#&" sera accepté aussi.
absolument !!! je viens d'y penser. désolé, je suis allé trop vite
-- klp
In article <4644a3ff$1@neottia.net>,
Olivier Miakinen <om+news@miakinen.net> wrote:
Le 11/05/2007 18:57, kurtz le pirate répondait à foucault :
pourquoi te compliquer la vie, un /d{10}/ devrait suffire non ?
/^d{10}$/ parce que sinon le texte "abc$@12345678901234567890#&" sera
accepté aussi.
absolument !!! je viens d'y penser. désolé, je suis allé trop vite