IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

N� de t�l�phone dans un formulaire


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Consultant - Webmarketing
    Inscrit en
    Avril 2013
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Consultant - Webmarketing
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 25
    Par d�faut N� de t�l�phone dans un formulaire
    Bonjour,
    Je suis nouveau dans le forum et d�butant en programmation.

    Mon probl�me :
    Je souhaite saisir un n� de t�l�phone dans un formulaire et j'ai trouv� sur ce site des infos int�ressantes. Voici le script utilis� :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            function formatte(obj,group){
            var regspace=/(\s)/g;     
            tempString=obj.value.replace(regspace,'')
            var reg=/([\d]{2})/g
            var regend=/\s$/
            if (tempString.length>group){
                obj.value=tempString.replace(reg,"$1 ").replace(regend,'')
                }
            }
    Et en HTML :
    Code HTML : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <input type="tel" onkeyup="formatte(this,2)" id="telfixe" name="telfixe" …

    Ceci fonctionne tr�s bien et des espaces sont ajout�s automatiquement � la saisie, tous les 2 chiffres.
    Par contre si je saisis du texte dans ce champ, du style "toto-titi", c'est accept� ce qui est plut�t emb�tant.
    Je cherche donc � emp�cher "en ligne" toute saisie de caract�res autres que des chiffres.
    Ce n'est certainement pas tr�s compliqu�, mais apr�s avoir pass� pas mal de temps � rechercher, je me suis dit que vous pourriez peut-�tre me donner une solution.

    Merci pour votre aide.
    Cdt,
    Rapha�l

  2. #2
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    remplace
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     var regspace=/(\s)/g;     
            tempString=obj.value.replace(regspace,'')
    par
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     var regspace=/([^0-9])/g;     
            tempString=obj.value.replace(regspace,'')
    remplace tout ce qui n'es pas un chiffre par ""

    A+JYT

  3. #3
    Membre averti
    Homme Profil pro
    Consultant - Webmarketing
    Inscrit en
    Avril 2013
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Consultant - Webmarketing
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 25
    Par d�faut Suite n� de t�l�phone dans formulaire
    Merci � Sekaijin
    Effectivement cela efface les caract�res alphanum�riques mais pas dans tous les cas.
    Deux cas :
    1.- Je saisis toto4528 --> j'obtiens bien 45 28 (avec espace entre les deux)
    2.- Je saisis (en pensant aux plaisantins) tototiti --> il n'y a pas de correction et l'affichage reste tel que saisi : tototiti.

    Avez-vous une solution ?

    Merci pour votre aide.
    Rapha�l

  4. #4
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Autant interdire directement la saisie des caract�res non num�riques � la base :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    document.getElementById('telfixe').onkeydown = function(e){
        return (e.which > 95 && e.which < 106);
    }
    Bon �videmment, c'est juste une base, il faut quand m�me pr�voir les corrections etc.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  5. #5
    Membre averti
    Homme Profil pro
    Consultant - Webmarketing
    Inscrit en
    Avril 2013
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Consultant - Webmarketing
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 25
    Par d�faut Concretement ?
    Merci � Bovino pour votre r�ponse.
    Mais j'avoue que je ne sais pas l'appliquer, aussi simple qu'elle paraisse.

    Voici ce que j'ai mis dans mon script :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    function formatte(obj,group){
    document.getElementById('telfixe').onkeydown = function(e){
    return (e.which > 95 && e.which < 106);
    }
    Et dans ma page php :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <input type="tel" onkeyup="formatte(this,2)" id="telfixe" name="telfixe"
    Cela ne fonctionne pas, il n'y a aucune correction de la saisie.
    Il faut peut-�tre renommer la fonction ou l'appeler autrement ?
    D'autre part, � quoi correspondent les codes 95 � 106 ?
    Car si je comprends bien, on n'accepte que les valeurs comprises entre 96 et 105 mais les codes ascii de 0 � 9 vont de 48 � 57, d'o� le trouble qu'y s'y ajoute.
    Merci pour votre �clairage.

    Rapha�l

  6. #6
    Membre averti
    Homme Profil pro
    Consultant - Webmarketing
    Inscrit en
    Avril 2013
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Consultant - Webmarketing
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 25
    Par d�faut RESOLU
    Finalement, je suis parti de l'id�e de Sekaijin, que je remercie encore.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
            function formatte(obj,group){
            var regspace=/(\D)/g;    /* remplace tout ce qui n'est pas un chiffre par un espace */
            tempString=obj.value.replace(regspace,'')
            var reg=/([\d]{2})/g
            var regend=/\s$/
            if (tempString.length>group){
                obj.value=tempString.replace(reg,"$1 ").replace(regend,'')
                }
            }
    Et dans le formulaire :
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <input class="contactmail" type="tel" onkeyup="formatte(this,2)" id="telfixe" name="telfixe" ...
    Ceci permet donc de formater la saisie : xx xx xx xx xx
    Et si du texte et des chiffres sont m�lang�s, le texte est effac�.
    Par contre s'il s'agit uniquement de texte, j'ai mis en place un autre s�curit� dans le code PHP :
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    $regex_tel = '/(\d\s)/';
    if (!preg_match($regex_tel, $telfixe))
        {   $alert = 'Le n° de téléphone fixe : '.$telfixe.' n\'est pas valide'; }

    Merci � vous pour votre participation.
    Rapha�l

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. V�rification num�ro de t�l�phone dans un formulaire
    Par riderfun dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 01/07/2008, 14h56
  2. Forcer la saisie en MAJ dans un Formulaire
    Par lolos dans le forum IHM
    R�ponses: 4
    Dernier message: 12/08/2003, 10h57
  3. R�ponses: 3
    Dernier message: 19/03/2003, 15h19
  4. R�ponses: 2
    Dernier message: 12/02/2003, 15h26
  5. [CR][Access] int�grer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    R�ponses: 7
    Dernier message: 13/01/2003, 15h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo