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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    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 Expert
    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
    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.

  3. #3
    Membre Expert
    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
    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>

  4. #4
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    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
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    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