Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.01.2011, 02:20
Новичок на форуме
Отправить личное сообщение для sergiyko Посмотреть профиль Найти все сообщения от sergiyko
 
Регистрация: 07.07.2010
Сообщений: 5

Смещение текста в текстовом поле после изменения
Добрый день
Есть проблемы с текстовым полем. Есть текстовое поле
<input id="mytext" name="mytext" type="text" value="" style="width: 150px;">

Поле имеет ширину 150 пикселей и если вводить текст с клавиатуры - все нормально, после достижения текстом конца выделенной ширины текст смещается, курсор стоит в конце и видно что вводишь. А вот если мне нужно что-то динамически добавить в поле
document.getElementById('mytext').value += 'abcd';

то положение текста в поле как бы сбивается. Как будто курсор передвинули в самое начало. То, что вводилось последним не видно (потому что текст длинный и в 150 пикселей не помещается). Приходится двигать курсор в самый конец вручную.
Я подумал, что после динамического добавления содержимого в поле перемещать курсор в конец с помощью javascript. Я нашел код для перемещения курсора, но он себя ведет не так как надо мне.
function setCaretPosition(el, pos)
{
    if (el.createTextRange)
    {
        // IE
        var range = el.createTextRange();
        range.collapse(true);
        range.moveEnd('character', pos);
        range.moveStart('character', pos);
        range.select();
        el.focus();
    }
    else if (el.selectionEnd)
    {
        // Gecko
        el.selectionEnd = pos;
        el.selectionStart = pos;
        el.focus();
    }
}
setCaretPosition(
document.getElementById('mytext'),
document.getElementById('mytext').length
);

В IE8, хроме он работает верно, курсор передвигается в конец вместе с текстом и его видно. А вот в Firefox курсор стает в нужное положение, но сам текст не смещается к курсору и курсор не видно. Только после того как начать вводить с клавиатуры текст смещается к положению каретки. В опере вообще пока вручную курсор не установить в поле ввода, курсор вообще никуда не передвинется.
Мне как-то нужно сделать, чтобы в поле ввода текст не смещался к началу после динамического добавления содержимого в него. А как сделать это я не пойму. Может кто-то подскажет?

Последний раз редактировалось sergiyko, 02.01.2011 в 03:15.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить координаты курсора в текстовом поле в пикселях prike Events/DOM/Window 4 23.05.2013 04:35
Выделение текста в текстовом поле. Как снять выделение с пробела вконце? Roman Koff Events/DOM/Window 10 01.07.2010 16:48
Поиск и замена в текстовом поле Roman Koff Events/DOM/Window 12 23.04.2010 23:35
Изменение текста слоя по изменениям в текстовом поле Воитель Общие вопросы Javascript 4 21.10.2008 11:03
вывод нужного текста в текстовом поле при нажатии на кнопку! fifo4ka Общие вопросы Javascript 7 06.05.2008 13:36