środa, 15 lipca 2009

Zaznaczanie kawałka tekstu w dla pola input=text

O ile problem nie jest specjalnie nowy, o tyle znalezienie rozwiązania stanowiło dla mnie spore wyzwanie. W pierwszym momencie uznałem nawet, że javascript po prostu nie daje takich możliwości. Dopiero gdy postanowiłem znaleźć jak się ustawia kursor w dowolnym miejscu pola input, okazało się, że zaznaczanie tekstu również jest dość proste. Oto rozwiązanie:

if (input.createTextRange) {
var range = input.createTextRange();
range.collapse(true);
range.moveEnd('character', selectionEnd);
range.moveStart('character', selectionStart);
range.select();
}
else if (input.setSelectionRange) {
input.focus();
input.setSelectionRange(selectionStart, selectionEnd);
}
}


Rozwiązanie zaczerpnięte ze strony http://faqts.com/knowledge_base/view.phtml/aid/13562