Auto-formatage input type tel

Résolu
PJ47 Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   -  
PJ47 Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Je cherche à "auto formater" mon input tel afin d'obtenir automatique le format XXXXXXXXXX quelque soit ce que l'utilisateur puisse taper.

je ne sais pas si cela doit se faire avec une fonction pré-existante ou une programmation autre.

Merci d'avance

J

3 réponses

  1. PJ47 Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   1
     

    @lors j'ai trouvé un code mais je cherche à l'adapter à mon cas 

    <form>
      <label for="#phone-input">Phone number<span class="required">*</span></label>
    <input id="phone-input" type="tel" value="" name="PhoneIn" aria-label="Please enter your phone number" placeholder="ex. 1(111)-111-1111">
      <p>Please fill out the information above.</p>
    </form>
    function phoneMask() { 
        var num = $(this).val().replace(/\D/g,''); 
        $(this).val(num.substring(0,1) + '(' + num.substring(1,4) + ')' + num.substring(4,7) + '-' + num.substring(7,11)); 
    }
    $('[type="tel"]').keyup(phoneMask);

    mais qu'est ce qui relie le code html au code javascript ?

    merci

    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       

      Bonjour,

      Tu peux mettre ton script dans ton fichier html  ( en le plaçant entre balises <script></script>  avant le </body> de ta page.

      Puis penses à vider le cache de ton navigateur avant de tester..

      0
    2. PJ47 Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   1 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
       

      Bonjour @jordane45 StatutModérateur

      c'est bien ce que j'ai fait mais : 

      j'ai la ligne de script qui s'affiche en haut de la page

      head :

      <script>
      function phoneMask() { 
          var num = $(this).val().replace(/\D/g,''); 
          $(this).val(num.substring(0,10)); 
      }
      $('[type="tel"]').keyup(phoneMask);
      </script>

      html:

            <div class="row mb-3">
                  <input name="tel" type="tel" placeholder="0000000000"  />
            </div>

      et cela ne fonctionne pas :-(

      https://www.sapa-traitement.com/formulaire.php

      J

      0
    3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > PJ47 Messages postés 77 Date d'inscription   Statut Membre Dernière intervention  
       

      Alors.... non..... tu n'as pas fait ce que je t'ai mis...

      Relis bien et applique...

      0
    4. jless > PJ47 Messages postés 77 Date d'inscription   Statut Membre Dernière intervention  
       

      Ce script requiert jQuery ($), essaye comme ceci :

      <script>
        document.addEventListener('DOMContentLoaded', () => {
          const inputs = document.querySelectorAll('[type="tel"]');
      
          for (const input of inputs) {
            input.addEventListener('input', () => {
              input.value = phoneMask(input.value);
            });
          }
      
          function phoneMask(value) {
            return value.replace(/\D/g, '').substring(0, 10);
          }
        });
      </script>
      1
    5. PJ47 Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   1 > jless
       

      Bonjour @jless

      merci beaucoup cela fonctionne parfaitement !

      J

      1
  2. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Bonjour,

    Ta demande est imprécise

    auto formater: c'est à dire ?

    mon imput : quel input ?

    Dans quel contexte ?

    0
  3. PJ47 Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   1
     

    Bonjour @Phil_1857 StatutMembre,

    je suis dans un formulaire html de contact.

    mon input en question est celui du tel.

    je souhaite que le tel soit formater en 0102030405 même si l'utilisateur met des points ou des espaces.

    Merci

    0
    1. PJ47 Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   1
       

      j'ai trouvé cette fonction javascript : 

      function phoneMask() { 
          var num = $(this).val().replace(/\D/g,''); 
          $(this).val(num.substring(0,1) + num.substring(1,4) + num.substring(4,7) + num.substring(7,10)); 
      }
      $('[type="tel"]').keyup(phoneMask);

      mais je ne sais pas comment l'utiliser

      0