Christian S.: js select - aber nur einen Teil!

Beitrag lesen

Hallo Forum!

Ich habe ein Textfeld:
<input type="text" name="myText" value="Maus Katze Hund" />
Darum ist ein Formular namens myForm – eh klar...

Mit
document.myForm.myText.select();
kann ich das gesamte Textfeld selektieren. Funktioniert auch problemlos.

Gibt es mit JS eine Möglichkeit, nur ein Wort auszuwählen?
Also, wenn im Text-Formularfeld "Maus Katze Hund" steht, will ich mit JS z.B. nur "Katze" selektieren.

Geht das überhaupt?
Und wenn ja, weiß jemand, wie?

Liebe Grüße aus Wien
Alex

Hi,

ich mach es immer mit folgenden Methoden. Die hab ich im FF und im IE getestet.

t wäre ein <input type="text"> element.

  
  
getSelection: function(t)  
{  
 var start = 0;  
 var end = 0;  
  
 if(typeof t.selectionStart != 'undefined')  
 {  
  start = t.selectionStart;  
  end = t.selectionEnd;  
 }  
 else  
 {  
  var selection = document.selection.createRange();  
  var r = selection.duplicate();  
  var l = r.text.length;  
  r.move("textedit", -1);  
  try  
  {  
   while (r.compareEndPoints("StartToStart", selection) < 0)  
   {  
    if(start++ > 1000)  
    {  
     break;  
    }  
    r.moveStart("character", 1);  
   }  
  }  
  catch(e)  
  {  
  }  
  end = start + l;  
 }  
 return [start, end];  
},  
  
  
setSelection: function(t, a, b)  
{  
 t.focus();  
 if (t.setSelectionRange)  
 {  
  t.setSelectionRange(a, b);  
 }  
 if (t.createTextRange)  
 {  
  var range = t.createTextRange();  
  range.collapse(true);  
  range.moveStart('character', a);  
  range.moveEnd('character', b - a);  
  range.select();  
 }  
},