powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / select() не выделяет текст текущего элемента
14 сообщений из 14, страница 1 из 1
select() не выделяет текст текущего элемента
    #38435175
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<!DOCTYPE html>
<html>
<body>
<input type="text" id="d1" maxlength="20" onChange="checkFields(this)">
<input type="text" id="d2" maxlength="20" onChange="checkFields(this)">
<script>
	function checkFields(el){
			document.getElementById('d2').select();
                        //el.select();
	}
</script>
</body>
</html>



Когда событие происходит на 'd1', то текст 'd2', выделяется, но если событие стартует с 'd2', то не выделяется. Хочется, чтобы при изменении происходила валидация текста, и, если ошибка, то выводить сообщение и выделять текст в этом элементе.

Это тестовый вариант только для проверки выделения, если что.
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38435189
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaldorey,

распишите задачу по-подробнее.
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38435195
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38435196
JOIN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaldorey,

может это:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<input type="text" id="d1" maxlength="20" onChange="checkFields(this)">
<input type="text" id="d2" maxlength="20" onChange="checkFields(this)">
<script>
	function checkFields(el){
            $(el).focus();
            $(el).select();
                     
	}
</script>
</body>
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38435295
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JOIN,

jquery не использую, но, насколько я понимаю, $(el) это просто селектор элемента по ИД?
В данном случае разве focus() нужен вообще? В любом случае - работает также.

Zick,

http://jsfiddle.net/m23wS/1/

Есть поле, в котором надо следать валидацию текста, и, если не прошла, то я решил вывести сообщение (пока не важно как, алертом либо рядом красным текстом), и выделить весь текст в этом инпуте, чтобы пользователь сразу мог приступить к исправлению
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38435587
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нашел каких-то ограничений, но путем эксперимента выяснил, что на события, при которых теряется фокус элемента, нельзя навесить фокус этого же элемента, а выделение это почти тот же самый фокус. Видимо это браузеры сами блокируют. Новый Firefox, IE8, Chrome - блокируют, а Opera 9.52 спокойно это позволяет.

Придется видимо по кнопке общую валидацию формы проводить, больше способов пока не нашел
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38435600
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaldorey,

как вариант обрабатывать onblur, но тогда, в случае ошибки фокус будет все время на текущем поле.
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38435701
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zick,

в случае какой ошибки? Я onblur пробовал навешивать и focus() и select() - не работает.
Дайте рабочий случай. Я просто пока не могу сообразить, как это сделать. Пробовал даже оборачивать. Попробую может завтра поставить фокус на другой элемент - а с него при фокусе инициировать фокус на изначальный, но имхо не поможет
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38435841
asdasdad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kaldorey,

A setTimeout(el.select,0) ?
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38436370
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdasdad,

Ошибка: TypeError: Value does not implement interface HTMLInputElement.
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38436373
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"«Ручной» запуск (генерация) события не создает по умолчанию действие, связанное с этим событием. Например, программная генерирация события focus на элементе не означает, он получит фокус" ©
http://habrahabr.ru/post/114244/

Так что обход искать для данной цели практически бесполезно. Всем спасибо.
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38436382
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоге, самое большое, чего удалось добиться, это если событие оставляет фокус на этом элементе, все работает. Если при событии происходит потеря фокуса - это уже не вернуть в рамках этого события, даже как-то замаскировав.
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38436508
asdasdad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kaldoreyasdasdad,

Ошибка: TypeError: Value does not implement interface HTMLInputElement.
Под IE работает, в других не проверял:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<html>
<head>	
<script>
function checkFields(el) {
  setTimeout(el.select,0);
}
</script>
</head>	
<body>
<input type="text" onChange="checkFields(this)">
<input type="text" onChange="checkFields(this)">
</body>
</html>
...
Рейтинг: 0 / 0
select() не выделяет текст текущего элемента
    #38436704
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdasdad,

действительно, работает, IE8. Но и он перед этим спросил - надо ли запускать заблокированное содержимое =)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / select() не выделяет текст текущего элемента
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]