Aller au contenu

Sujets conseillés

Posté

Bonjour à tous,

Je travaille sur un formulaire de contact qui me pose un soucis de vérification au niveau du téléphone.

J'ai trouvé un script génial sur le site Pompage avec plein d'explications, mais ce script semble ne pas avoir

prévu de vérification pour le numéro de téléphone, du coup on peut mettre une suite de lettres sans être repéré

comme erreur...

Voici la partie du code qui concerne la vérification des champs du formulaire :

// vérifie que le champs requis est présent
var f=document.getElementById(reqfields[i]);
if(!f){continue;}
// teste si le champ requis est erroné,
// en fonction de son type
switch(f.type.toLowerCase())
{
case 'text':
if(f.value=='' && f.id!='email'){cf_adderr(f)}
// email est un champ spécial nécessitant une vérification
if(f.id=='email' && !cf_isEmailAddr(f.value)){cf_adderr(f)}
break;
case 'textarea':
if(f.value==''){cf_adderr(f)}
break;

Pour plus d'info, le site en cours de dev est visible ici :

http://www.epicerie-st-georges.com/test/index.php

Merci pour votre aide car mes connaissances en prog sont limitées... même si je m'améliore ;)

Posté

C'est vraiment essentiel pour toi d'avoir le numéro de téléphone ?

Si ce n'est pas vraiment vital, laisse le contrôle tel quel. Dans le cas contraire, il faudra passer par des expressions régulières, qui peuvent être plus ou moins contraignantes : elles doivent prendre en compte les différentes manières de saisir un numéro de téléphone, sans frustrer l'utilisateur parce qu'il aura saisi un numéro correct mais non prévu :

01 02 03 04 05

01.02.03.04.05

01-02-03-04-05

0102030405

+331 02 03 04 05

+33 (1) 02 03 04 05

etc

De toutes façons, il faudra également prévoir un contrôle côté serveur après coup (PHP, ASP, ou autre en fonction de ton serveur), afin que tout fonctionne même pour ceux ayant désactivé le JavaScript.

Posté

Hello Captain ;)

Je me suis aussi posé la question, mais tant qu'il n'a pas l'outil Internet dans sa boutique,

je pensais l'info essentielle pour mon client... l'utilisation du téléphone est aussi plus aisé pour lui.

C'est également lié à l'organisation de son activité, qui a besoin de réponses rapides.

C'est quoi "des expressions régulières" ?? je cherche...

Sinon, j'ai prévu une limite de caractères dans le champs qui correspond à un numéro de tel

brut de 10 chiffres, sans espaces ou tirets. La clientèle étant locale, nul besoin du +33...

Par contre... mince ! y'a bcp de gens qui interdisent l'execution des scripts JS ?

Si oui, je vais devoir prévoir un script en PHP... sinon, c'est possible de faire en php ce que j'ai

fais en JS ? autant prendre des raccourcis ;)

Posté

Une expression régulière est une manière de formater une portion de texte. C'est, par exemple, un code qui va vérifier qu'une adresse e-mail est dans un format correct, ou qu'un login ne comprend que des caractères alphanumériques.

Dans ton cas, je ne pense pas que ce soit essentiel de complexifier ton code ainsi : contente toi de vérifier que le champ "Téléphone" est rempli.

Pour ce qui est du nombre de personnes ayant désactivé JS, ce n'est pas le plus important : il vaut mieux partir du principe que le JS n'est pas un système de contrôle fiable, et toujours utiliser un contrôle côté serveur. Il peut toutefois être doublé par un contrôle en JavaScript, pour plus de convivialité, mais ce dernier n'est pas essentiel.

Posté (modifié)

Merci pour cette leçon Captain...

Ok pour le l'utilisation du JS, je considère dès lors que c'est plus pour le fun que pour

la fiabilité et je doublerai donc systématiquement avec un script PHP... à ce propos en

as tu un sous le coude (url) à me conseiller ? Je cherche aussi de mon côté...

En outre, j'ai d'autres soucis plus urgents liés au fonctionnement d'IE... le site bug à

plusieurs niveaux sur l'affichage des div... pfff

Encore merci pour tes conseils ;)

Modifié par Webdesigneuse
Posté

J'utilise cette fonction pour les numéros en France :

function testTelephone(numero) {
var masque = /^(0|\+33\s?)[1|2|3|4|5|6|8|9]([\s\.\/\-]?\d{2}){4}$/;
return masque.test(numero);
};

On peut mettre le +33 ou non, des numéros qui commencent de 01 à 09 (mais pas 07), un séparateur espace, point, slash ou rien...

Mais comme plus haut, si pas de Javascript, pas de contrôle ! on peut faire la même chose dans une fonction PHP qui fera le contrôle sur le script de validation.

Posté

Yesss ! voilà qui va m'être utile ! merci bcp Incite !

De plus, j'ai cherché sur d'anciens sites que j'ai réalisé et j'ai trouvé un script version PHP qui fonctionne bien.

Je l'ai donc ajouté et je vais y glisser ta vérification en version php ;)

Rahh !! j'ai une mémoire courte sur ce que je développe ! je devrais dev plus souvent en fait... et j'ai cruellement besoin de vacances en plus !!! :wacko:

Joyeuses fêtes à tous !!!

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...