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 :

Surbrillance d'une partie d'une zone text


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    Points : 25
    Points
    25
    Par défaut Surbrillance d'une partie d'une zone text
    Bonjour,

    Après quelques recherches infructueuses, je m'adresse à vous pour mon problème.

    J'ai ceci dans une de mes pages :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="findAdvanced" name="find" size = 55/>
    A partir d'un javascript externe, je souhaite mettre en surbrillance (pré-sélectionner) une partie du texte contenu dans cette zone, de manière à ce qu'un utilisateur n'ai plus qu'à remplacer cette partie (et uniquement cette partie) de texte par une autre qu'il tapera au clavier.
    Ca lui évite d'avoir à faire la sélection lui-même.

    Et... Ben je ne sais pas faire...

    En tous cas, bon week-end

  2. #2
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    J'ai pas beaucoup de temps pour approfondir le sujet là maintenant, mais je serais toi, j'irais voir du côté de createTextRange.
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  3. #3
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Comme j'avais un peu plus de temps aujourd'hui, voici un exemple d'utilisation de createTextRange:

    Code : 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
    17
    18
     
    <html>
    <head>
    <script language="javascript">
    function SelectText() 
    {
    	var thetext = document.forms.maform.moninput.createTextRange();
    	thetext.findText("un petit peu de texte");
    	thetext.select();
    }
    </script>
    </head>
    <body onLoad="SelectText()">
    <form name="maform" method=post>
    <input type=text name="moninput" size=50 value="ceci est un petit peu de texte">
    </form>
    </body>
    </html>
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Ma foi, je m'en vais essayer ça de retour de week-end :-)
    Merci beaucoup, je te tiens au courant.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Merci Ryan pour ta piste : cela m'a bien aidée :-)

    J'ai "trifouillé" un peu sur les sujets de forums et sur le net à partir de ce que tu m'as indiqué.

    Voici le code de ma méthode, qui fonctionne pour IE et Firefox.

    Code : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    function SelectText(posDebutMot, longueurMot, decFin) 
        // posDebutMot : sert dans le cas d'IE position du premier caractère du mot ou de l'expression ajoutée
        // longueurMot : longueur du mot ou de l'expression qu'on rajoute au champ
        // decFin : décalage à effectuer sur la fin en fonction du caractère qui termine le mot ou l'expression ajoutée. 
    {
        var input = document.getElementById("findAdvanced");
     
    /* Internet Explorer */
      if(typeof document.selection != 'undefined') {
        var thetext = document.getElementById("findAdvanced").createTextRange();
        thetext.moveStart("character", posDebutMot);
        thetext.moveEnd("character", -decFin);
        thetext.select();
      }
     
    /* Mozilla / firefox / opera / netscape*/
      else if(typeof input.selectionStart != 'undefined'){
        input.focus();
        var posDebut = input.selectionStart - longueurMot - decFin;
        var posFin = input.selectionEnd - decFin;
        input.selectionStart = posDebut;
        input.selectionEnd = posFin;  
      }
    }
    Par exemple : lorsque j'ajoute "mot" à mon expression (avec les guillemets), il me sélectionne mot (sans les guillemets). Si j'ajoute -mot (avec le '-') il me sélectionne mot.

    Bon, je suis plutôt à classer dans les débutants en javascript alors s'il y a des améliorations possibles : je suis preneuse!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer une partie d'une ligne d'un fichier texte
    Par exqo77 dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 28/01/2010, 10h13
  2. donner une couleur a une partie d'une forme
    Par ralf91 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/04/2008, 17h02
  3. Sélectionner seulement une partie d'une valeur d'une cellule
    Par ArthurO0O dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/08/2007, 11h05
  4. masquer une partie d'une vidéo par une banniere
    Par lezabour dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2006, 16h47
  5. copier une partie d'une image vers une autre
    Par gregcat dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2006, 13h39

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