2010-06-08 10 views
3

Je souhaite que mon script sélectionne uniquement une partie du texte dans un champ de texte (<input type="text"). Comment puis-je faire ceci?Sélectionnez partiellement le texte dans le champ de texte

+0

To clari fy, vous voulez un moyen de définir la sélection en cours en spécifiant un index de début et de fin? Ou en faisant correspondre une regex? Ou en modifiant la sélection existante d'une manière prédéterminée? Ou quoi? – warrenm

+1

Copie possible de http://stackoverflow.com/questions/646611/programmatically-selecting-partial-text-in-an-input-field – marapet

Répondre

2

Vous devrez utiliser Range, et la compatibilité entre les navigateurs sera probablement un problème.

Quirksmode: Creating a Range object from a Selection object

Si jQuery est une option, voici une fonction que vous pouvez utiliser (reference) ...

$.fn.selectRange = function(start, end) { 
    return this.each(function() { 
     if(this.setSelectionRange) { 
      this.focus(); 
      this.setSelectionRange(start, end); 
     } else if(this.createTextRange) { 
      var range = this.createTextRange(); 
      range.collapse(true); 
      range.moveEnd('character', end); 
      range.moveStart('character', start); 
      range.select(); 
     } 
    }); 
}; 
+0

Pourquoi avez-vous besoin de jQuery pour cela? –

+0

@Tim Vous n'avez pas. –

0

Check out Programmatically selecting partial text in an input field (peut être un doublon ...)

En outre, une implémentation utile concernant le texte sélectionné et la position du curseur peut être trouvée ici: http://javascript.nwbox.com/cursor_position/

+0

Yup, il semble que ma question est un doublon. Il est étrange que je ne trouve jamais une question de dépassement de pile existante qui résout mon problème jusqu'à ce que je poste le doublon. – Pieter

Questions connexes