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 :

Focus après texte


Sujet :

JavaScript

  1. #1
    Membre émérite Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Points : 2 589
    Points
    2 589
    Par défaut Focus après texte
    Bonjour,

    Dans le cadre d'un formulaire que je dois faire pour ma société, j'ai crée un input text qui doit contenir des numéros de téléphones portables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="tel" name="tel" value="06">
    Lorsque le focus arrive sur le champ, il "sélectionne" le 06, ce qui oblige l'utilisateur à retaper "06" + la suite de son numéro.

    Y a t-il un moyen de placer directement le focus après le "06" ?
    De façon à ce que l'utilisateur tape directement le numéro sans avoir à retaper "06" au début...

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onfocus="this.value=this.value"
    ha non désolé ça ça fait l'inverse ^^

  3. #3
    Membre averti Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Points : 425
    Points
    425
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" value="06" onfocus="this.selectionStart=2;">

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Curieusment cela n'a pas l'air de fonctionner lorsque le champs reçoit le focus au moyen des tabulations ...

  5. #5
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonsoir,
    Peut-être une autre solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <form name="form">
    <div>
    Indiquer votre N&deg; de portable : 
    <input name="Tph1" id="Tph1" type="text" value="06" size="1" maxlength="2" onFocus="this.blur(); document.form.Tph2.focus();" style="text-align:center">
    . <input name="Tph2" type="text" id="Tph2" size="1" maxlength="2" style="text-align:center">
    . <input name="Tph3" type="text" id="Tph3" size="1" maxlength="2" style="text-align:center">
    . <input name="Tph4" type="text" id="Tph4" size="1" maxlength="2" style="text-align:center">
    . <input name="Tph5" type="text" id="Tph5" size="1" maxlength="2" style="text-align:center">
    </form>
    Ce qui te donne plusieurs champs TEXT dont le premier n'est pas modifiable.
    Tu as juste ensuite à concaténer tes cinq champs pour obtenir ton numéro de téléphone portable.

    Tu peux même si tu le veux agrémenter ce petit petit formulaire de l'excellent script réaliser par SpaceFrog : Comment passer automatiquement au champs suivant lorsque la taille maximale du champs en cours est atteinte ? http://javascript.developpez.com/faq...js#TexteSuivat

  6. #6
    Membre averti Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Points : 425
    Points
    425
    Par défaut
    Apparemment le onfocus s'exécuterait avant la méthode native focus() du champ texte. C'est pour ça que ça ne marche pas, focus() resélectionne tout dès que onfocus est terminé.
    Ta solution est une bonne idée jumano.
    Car pour ne garder qu'un seul champ, il faudrait recréer de toute pièce un controle texte : une div dans laquelle un curseur clignote et dont le contenu est mis à jour selon les évènements claviers et souris détectés ... un peu compliqué !
    Ou pourquoi pas, tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    06<input type="text" maxlength="8" ...

  7. #7
    Membre émérite Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Points : 2 589
    Points
    2 589
    Par défaut
    Merci à tous pour vos réponses rapides.

    Bien que la solution de Jumano parait la plus sympathique pour réaliser ceci, ça ne correspond pas vraiment à ce que je voudrais.

    N'y-a-t-il aucun moyen via JS (par exemple) de réaliser ceci ?
    Lors du de la prise du focus sur le champ, positionner le curseur après le 2ème caractère ?

    P.S : Je dois appliquer ensuite la même chose pour un champ IMEI (N° de série de tel portable qui doit lui commencer par 35)

  8. #8
    Membre du Club Avatar de Cornholio
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Points : 62
    Points
    62
    Par défaut
    Voila pour le focus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <script>
    function focusMoi(element){
    	var focussisation = element.createTextRange();	
     
    	focussisation.moveStart("character", 2);
    	focussisation.select();
    }
    </script>
     
    <input type="text" id="tel" name="tel" value="06" onfocus="focusMoi(this);">
    Sur IE 6 ca marche.
    Par contre sur FireFox ca marche pas , mais ca peut peut être t'aider.

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    J'ai lu quelquepart que selectionStart ne marche que sous FF.

  10. #10
    Membre émérite Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Points : 2 589
    Points
    2 589
    Par défaut
    Merci T.Cornholio, je vais tenter d'explorer cette piste.

    Madevilts > Si selectionStart ne marche que sous FF, alors dans ce cas faire 2 scripts qui s'active ou non en fonction du navigateur utilisé.
    Si tu as plus de précisions ou un bout de code pour un script tournat sous FF, je suis preneur.

  11. #11
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    Citation Envoyé par HiRoN Voir le message
    Merci T.Cornholio, je vais tenter d'explorer cette piste.

    Madevilts > Si selectionStart ne marche que sous FF, alors dans ce cas faire 2 scripts qui s'active ou non en fonction du navigateur utilisé.
    Si tu as plus de précisions ou un bout de code pour un script tournat sous FF, je suis preneur.
    Malheureusement je ne connais pas cette fonctionalité. En cherchant un peu j'ai lu que selectionStart ne tournait que sur FF et que sur IE il fallait utiliser TextRange. J'ai du interrompre mes recherches car je suis au travail.

  12. #12
    Membre émérite Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Points : 2 589
    Points
    2 589
    Par défaut
    Ok, ok.
    Merci encore pour tes réponses et bonne continuation.

  13. #13
    Membre émérite Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Points : 2 589
    Points
    2 589
    Par défaut
    Le code fourni par Cornholio ne fonctionne que sous Internet Explorer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <script>
    function focusMoi(element){
    	var focussisation = element.createTextRange();	
     
    	focussisation.moveStart("character", 2);
    	focussisation.select();
    }
    </script>
     
    <input type="text" id="tel" name="tel" value="06" onfocus="focusMoi(this);">
    Malgré plusieurs recherches sur "selectionStart" afin de trouver un équivalent fonctionnant sous Firefox (+ Safari si possible), je n'ai pas réussi à trouver mon bonheur...

    Si quelqu'un à déjà planché sur le problème, un bout de code serait le bienvenu.

    Cordialement,

Discussions similaires

  1. Retrouver le focus après non validation d'un champ de formulaire.
    Par pidlas dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 19/06/2010, 20h17
  2. textaerea: focus fin text
    Par hammag dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/07/2009, 12h17
  3. Perte de focus apres fin de barre de progression
    Par LePapat26 dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 02/04/2009, 09h37
  4. Où va le focus apres On Exit?
    Par timoth dans le forum IHM
    Réponses: 2
    Dernier message: 31/10/2008, 04h07
  5. Garder le focus apres un submit
    Par SweetLeaf dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/07/2008, 16h42

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