Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> установка фокуса в конец строки! 
:(
    Опции темы
HappyMan
Дата 25.3.2005, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



устанавливаю фокус в текс. поле. Как сделать чтобы он(каретка) устанавливалась в конец строки а не в начало?


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
sergejzr
Дата 25.3.2005, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Ты имеешь ввиду, после всего текста в поле?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 25.3.2005, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Под оперой до версий 7 никак, под Мозиллой ставим selection(Start|End) на последний символ, под ИЕ селектируем всё и коллапсируем в конец(TextRangeInstance.collapse(false)):


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Sardar
Дата 25.3.2005, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Вот кодом:
Код
var o=document.getElementById("test");
o.focus();
if(document.selection) {
  var s=document.selection.createRange();
  if(s.parentElement().tagName=="INPUT") {
    s.moveEnd("character", o.value.length);
    s.select();
    s.collapse(false);
    s.select();
  }
} else o.selectionEnd=o.selectionStart=o.value.length;



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
HappyMan
Дата 25.3.2005, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



sergej.z
да, после всего текста
Добавлено @ 18:20
Sardar
хмм... я думал это одной строчкой можно сделать..


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
sergejzr
Дата 25.3.2005, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Вот как работает код Sardar'a
http://files.vingrad.ru/sergej.z/js/movecarret.html

Одной строкой не обойдёшься smile Sardar уже очень коротко написал smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 25.3.2005, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Одной строчкой по моему никак. В ИЕ за место коллапсирования селекции можно передвинуть начало и конец селекции в конец текста. Но сути не меняет.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
HappyMan
Дата 25.3.2005, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



sergej.z
Sardar
не хочу растраивать, но не под Оперой не под ИЕ не заработало..
Добавлено @ 18:43
или это токо у меня?
Добавлено @ 18:45
под Оперой если там текст выделить и нажать на кнопку то он его девыделит и потом опять выделит, по сути - моргнет..не знаю как обьяснить.
Добавлено @ 18:46
а под ИЕ или ничего не сделает или переместит в начало
Добавлено @ 18:47
явно не так должен работать..


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
HappyMan
Дата 25.3.2005, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



Sardar
sergej.z
у вас нормально работает?


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Sardar
Дата 25.3.2005, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Я же сказал под Оперой до версии 7 никак, под Оперой 8 есть возможность, но как всегда их selection подглючивает, пока мы его не изучили.

Да, sergej.z разметку изменил, поставив не инпут, а текстареа, в этой строке:
if(s.parentElement().tagName=="INPUT") мы обрываемся smile
Строка нужна т.к. селекцию мы можем иметь в любом месте докуемента. Но была еще и ошибка с нахождением конца селекции, вот так будет работать правильно:
Код
function setCarret()  {
    var o=document.getElementById("test");
    o.focus();
    if(document.selection)  {
       var s=document.selection.createRange(), pos;
        if((pos="INPUTTEXTAREA".indexOf(s.parentElement().tagName.toUpperCase()))==0 || pos==5) {
           s.moveToElementText(o);
           s.collapse(false);
           s.select();
       }
    } else o.selectionEnd=o.selectionStart=o.value.length;
}



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sergejzr
Дата 25.3.2005, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Обновил smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
HappyMan
Дата 25.3.2005, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



Sardar
sergej.z
Во! Щас все ок! большое спасибо!


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
HappyMan
Дата 26.3.2005, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



sergej.z
Sardar
а если у меня не текстАреа а простое текстовое поле, как изменится данная строчка:

Код

if((pos="INPUTTEXTAREA".indexOf(s.parentElement().tagName.toUpperCase()))==0 || pos==5) {


????


и можно ли вот это:
Код

var o=document.getElementById("test");


заменить на:
Код

var o=parent.myFRAME.document.forms.myTEXTField.message;


????

спрашиваю потому что кое что не работает(после того как под свои нужды начал подгонять)
т.е он просто фокус устанавливает... ито с ошибкой в этой строке:
Код

s.moveToElementText(o);


Ошибка: Invalid arguments


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Sardar
Дата 26.3.2005, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(HappyMan @ 25.3.2005, 23:34)
как изменится данная строчка:

Эту строчку не меняй, она вроде под все текстовые поля, ну кроме древних isindex.
Цитата(HappyMan @ 25.3.2005, 23:34)
заменить на:

Да, нам нужно получить обьект - текстовое поле.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
HappyMan
Дата 26.3.2005, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



Sardar
так почему же тогда ошибка и не работает?


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0901 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.