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 :

Personnaliser la saisie d'un INPUT


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Service médical
    Inscrit en
    Mai 2024
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Service médical
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2024
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Personnaliser la saisie d'un INPUT
    Bonjour les petites lanternes du développement.

    Je ne sais pas si je suis au bon endroit mais je recherche à faire une chose un peu particulière.

    j'ai un input, je cherche à ce que la saisie soit au format plaque d'immatriculation

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="texte" name="immat" id="immat" value="" placeholder="xx-111-xx" style="text-align:center; font-size:16px"/>

    J'aimerai que lorsque que l'utilisateur écrit les deux premières lettres, le "-" se mette tout seul puis après les trois chiffre le "-" se mette également tout seul. un peu dans le genre des numéro OEM de Windows à l'époque.

    Pourriez vous m'aider

    Merci à vous

    des bisous

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 88
    Points : 162
    Points
    162
    Par défaut
    Bonjour,
    J'ai une petite idée concernant ton problème , je pense aux expressions régulières si ca te dit quelque chose ?

    Il va falloir mettre en place un écouteur d'évènement keypress sur ton input , et à chaque saisie tu vérifie si la saisie est bonne.
    J'ai pas une idée optimal , mais si tu fais une boucle avec expression régulières ca devrait le faire
    Tu fais en sorte que dès que tu as un match sur ta saisie tu rajoutes un tiret , et si tu arrives sur le dernier test et qu'il est bon ca te donnera
    11-123-11- et la tu pourras donc enlever le tiret de fin.
    J'ai oublié un petit détail , vérifie avant de mettre un tiret que la chaine que tu viens de vérifier n'est pas suivi d'un tiret , parce que sinon ca va générer des plaques comme ca si tu modifies plusieurs fois : 12-256---78
    Bien sur lors de la validation du form tu vérifie quand même que ta plaque est au bon format.
    Parce que sinon quelqu'un peut taper une plaque correcte : 12-345-67 et la modifier juste après pour te donner ca par exemple : 12-34BCD-67

    J'espère avoir été suffisamment clair
    Bonne lecture et bon courage

  3. #3
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 427
    Points : 857
    Points
    857
    Par défaut
    Citation Envoyé par gabi7756 Voir le message
    Bonjour,
    J'ai une petite idée concernant ton problème , je pense aux expressions régulières. Il va falloir mettre en place un écouteur d'évènement keypress...
    C'est la solution qui vient en effet en premier à l'esprit. Cependant, Si notre amie Lucie est un peu déboussolée par le JS, il est possible de s'en passer. On peut faire appel à un input auquel on donne un attribut pattern. Cela ne dispensera malheureusement pas de devoir construire une petite expression rationnelle.

  4. #4
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 472
    Points : 4 673
    Points
    4 673
    Par défaut
    l'attribut pattern ne repond pas a sa problematique, dans le sens ou ca n'ajoute pas automatiquement des caracteres, mais se contente de verifier l'input final. j'ai bien peur qu'il faille passer par du JS

    note : j'ai change le type="text" par un type="search" (ce qui permet de supprimer le text dans l'input) (je l'avoue... par facilite)
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="search" name="immat" id="immat" value="" placeholder="xx-111-xx" style="text-align:center; font-size:16px"/>
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    document.getElementById('immat').addEventListener('keydown', function(e) {
    	e.preventDefault();
      if(this.value.length > 8) { return; }
     
      if((this.value.length < 2 || this.value.length > 5) && /Key[A-Z]/.test(e.code)) {
      	this.value += e.key;
      }
     
      if((this.value.length > 2 && this.value.length < 6) && /\d/.test(e.key)) {
      	this.value += e.key;
      }
     
      if(this.value.length === 2 || this.value.length === 6) {
      	this.value += '-';
      }
    });
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  5. #5
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 427
    Points : 857
    Points
    857
    Par défaut
    Citation Envoyé par Doksuri Voir le message
    l'attribut pattern ne repond pas a sa problematique, dans le sens ou ca n'ajoute pas automatiquement des caracteres, mais se contente de verifier l'input final.
    C'est vrai ! Ça ne répond qu'à sa demande générale :
    j'ai un input, je cherche à ce que la saisie soit au format plaque d'immatriculation
    J'ai zappé le reste.
    Ton script répond parfaitement à sa demande.

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 88
    Points : 162
    Points
    162
    Par défaut
    Bien vu ton script mais si je peux me permettre une réflexion , faudrait rajouter un système pour pouvoir modifier ta saisie , parce que dans ton cas tu pars du principe que l'utilisateur va pas se tromper mais on les connais lol

    Avec ca tu autorises la suppression donc tu pourras corriger ta plaque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(e.code!='Backspace'){	
    e.preventDefault()
    }

  7. #7
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 472
    Points : 4 673
    Points
    4 673
    Par défaut
    oui, je sais.. j'avais la flemme

    parce que supprimer un char va entrer en conflit avec l'ajout automatique du tiret '-'

    donc, si l'utilisateur se trompe, il peut tout supprimer avec la petite croix
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  8. #8
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 88
    Points : 162
    Points
    162
    Par défaut
    Une solution consisterai à vérifier d'abord que les valeurs suivi sont les bonnes , et ensuite si elles sont suivis d'un - ; auquel cas on l'insere dans le input pour ne pas faire n'imp avec le reste.
    Et faire ca 2 fois et demi du coup

    Bref c'est vrai que ca fait l'affaire donc bon c'est bien.
    Ca marche donc bon on va s'en contenter je crois

  9. #9
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 472
    Points : 4 673
    Points
    4 673
    Par défaut
    Citation Envoyé par gabi7756 Voir le message
    on va s'en contenter je crois
    personne ne t'empeche de proposer le code ultime
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  10. #10
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 88
    Points : 162
    Points
    162
    Par défaut
    Je réemploi tes propos :
    La flemme :p
    Bon courage et bonne continuation

Discussions similaires

  1. Restriction de la forme de saisie d'un champ input
    Par darkterreur dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2012, 16h34
  2. [MySQL] Calculer champ input saisi
    Par Shivas dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/06/2010, 12h57
  3. Detecter la saisie dans un champ input text
    Par suckthewindow dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 21/08/2008, 11h52
  4. saisie semi-automatique sur champs input sans submit du formulaire
    Par j0hnmerrick dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/10/2007, 17h54
  5. [champ input] Desactiver l'aide a la saisie d'IE
    Par fred777888999 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/10/2006, 14h53

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