Text in InputFeld nur teilweise markieren.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Text in InputFeld nur teilweise markieren.

    Hi,

    wie man ja weiß, kann man mit element.select() den gesamten Inhalt eines Textfeldes markieren.

    Nun Tippe ich aber in ein Textfeld und führe im Hintergrund eine Suche durch und ersetze dann den Inhalt des Textfeldes durch mein Suchergebniss.

    Allerdgins kann es ja sein das man während schon ein Ergebniss im Textfeld steht weiter schreibt. Somit sollte also der neu hinzugekommene Text markiert sein, damit er überschrieben wird wenn man weiter tippt.

    Jemand ne Idee wie ich den Text von einer bestimmten Position aus markieren kann?

  • #2
    Hatte mir mal ein Skript zum Einfügen von BBCodes besorgt und angepaßt. Vielleicht hilft dir ja das hier:
    PHP-Code:
        var txtarea document.forms[form].elements[field];
        var 
    selLength txtarea.textLength;
        var 
    selStart txtarea.selectionStart;
        var 
    selEnd txtarea.selectionEnd;
        var 
    oldScrollTop txtarea.scrollTop;
        var 
    s1 = (txtarea.value).substring(0,selStart);
        var 
    s2 = (txtarea.value).substring(selStartselEnd)
        var 
    s3 = (txtarea.value).substring(selEndselLength);
        
    txtarea.value s1 '[' ']' s2 '[/' ']' s3;
        
    txtarea.selectionStart s1.length;
        
    txtarea.selectionEnd s1.length s2.length v.length 2;
        
    txtarea.scrollTop oldScrollTop;
        
    txtarea.focus(); 
    weiter...
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

    Kommentar


    • #3
      Hey, danke.

      selectionStart und selectionEnd finde ich nur nirgends dokumentiert. Der Firefox kanns aber leider der IE7 nicht. *schnüff*

      Jemand ne Idee, warums nichts im IE funzt?
      Zuletzt geändert von prego; 20.04.2006, 14:23.

      Kommentar


      • #4
        Habs gelöst. Der IE kennt die eigenschaften SelectionStart und End nicht. Er, wie auch der Opera, haben ein TextRange Objekt mit dem man solche Spielereien machen kann.


        PHP-Code:
        //e = input type text
        //word = e.value vorm einfügen des Suchergebnisses
        if(typeof document.selection != 'undefined') {
            var 
        e.createTextRange();
            
        r.moveStart('character'word.length);
            
        r.moveEnd('character'e.value.length);
            
        r.select();
            
        }else if(
        typeof input.selectionStart != 'undefined'){
            
        e.selectionStart word.length;
            
        e.selectionEnd e.value.length;


        Danke murphy, du hast mich auf die passende Idee gebracht.

        Kommentar

        Lädt...
        X