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 :

Selectionner par javascript une partie de texte


Sujet :

JavaScript

  1. #1
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut Selectionner par javascript une partie de texte
    Bonjour

    J'essaye d'améliorer mon système de saisie d'adresse à la google suggest. Comme google suggest, j'aimerai quand dans le champ texte où l'on écrit, cela affiche le 1er élément de la liste du dessous avec la partie "ajoutée" sélectionnée comme ca quand l'utilisateur continue de taper, ca efface ce qui a été ajouté automatiquement.
    En faisant des recherches sur la façon de sélectionner du texte j'ai trouvé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    selectionStart
    SelectionEnd
    Mais ca ne semble pas fonctionner (du moins sous IE, car l'intranet sera utilisé sous IE exclusivement). Est-ce que ca fonctionne sous IE ou alors ca viendrait d'une erreur dans mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.forms.searchform.cp.selectionStart = liveSearchLast.length;
    document.forms.searchform.cp.selectionEnd = document.forms.searchform.cp.value.length + 1;
    Sinon comment faire ?

    Merci

  2. #2
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    pas d'idée ?

    J'ai vu qu'il existait la fonction select() mais ca sélectionne tout le texte. Comment n'en sélectionner qu'une partie ?

  3. #3
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    j'ai trouvé une solution. C'est par forcémment la mieu vu que je me base pas sur la position mais sur le morceau de chaine mais ca à l'air de fonctionner correctement quand même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    texteselect = document.getElementById("cp").value.substr(liveSearchLast.length,document.getElementById("cp").value.length-liveSearchLast.length);
    var oRange = document.getElementById("cp").createTextRange();
    if (oRange.findText(texteselect)) {
    	oRange.select();
    }

  4. #4
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    en fait ca ne fonctionne pas comme je veux

    par exemple je tape le début d'un cp en mettant 30. Mon script va bien ajouter automatiquement 000 à la fin. Par contre, au lieu de sélectionner les 3 derniers zéros, il va sélectionner les 3 premiers qu'il trouve.
    J'ai donc comme sélection :
    30000
    au lieu de :
    30000

    Il faut donc bien que je sélectionne par rapport à la position mais je ne trouve pas comment faire sous IE puisque selectionBegin et selectionEnd ne semblent pas fonctionner

    Quelqu'un aurait une idée ?

    Merci

  5. #5
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    je viens de trouver, il faut rajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oRange.moveStart("character",document.getElementById("cp").value.length-texteselect.length);
    finalement j'ai trouvé toute seule mais il n'y a pas beaucoup d'explications à ce sujet sur le net (du moins en français), ça pourrait être utile de rajouter ça dans la FAQ je pense, non ?
    Je pense que sous Firefox il faut faire avec la méthode que j'ai essayé d'utiliser en 1er (selectionStart - selectionEnd).

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

Discussions similaires

  1. selectionner une partie du texte dans un Input avec JS
    Par ludovic.latu dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/02/2011, 18h09
  2. [JTextField] Supprimer une partie du texte
    Par jean_bobi dans le forum Composants
    Réponses: 4
    Dernier message: 26/09/2005, 15h22
  3. [VBA][Excel]Supprimer une partie du texte d'une grosse liste
    Par annedeblois dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/09/2005, 17h15
  4. Réponses: 9
    Dernier message: 26/04/2004, 21h51
  5. comment remplacer une partie de texte dans un champs
    Par patlapi dans le forum Paradox
    Réponses: 4
    Dernier message: 20/11/2003, 14h38

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