Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вернуть элемент в фокусе (https://javascript.ru/forum/dom-window/24151-vernut-ehlement-v-fokuse.html)

SvetozarPNZ 19.12.2011 12:26

Вернуть элемент в фокусе
 
Привет!
Я пишу пытаюсь писать скрипт проверки полей формы. Хочу, чтобы поле ввода очищалось при фокусе на нем и заполнялось (если пустое) при уходе фокуса.

<input name="mail" id="ob" value="Обратная связь" type="text" onfocus="clearing">


В функции clearing я хочу проводить проверки содержимого поля и менять стили. Она универсальна для разных полей, поэтому мне нужно узнать, как вернуть элемент, на котором есть фокус, а также способ, как отследить уход фокуса с элемента.

:help:

Pavel M. 19.12.2011 13:41

Цитата:

Сообщение от SvetozarPNZ
как отследить уход фокуса с элемента

событие 'blur'

SvetozarPNZ 19.12.2011 14:20

Свою проблему частично решил таким образом:
<input name="mail" id="ob" value="Обратная связь" type="text" onfocus="clearing ('ob')">

И уже в фукнции через id находил объект в фокусе.

розовый слоник 19.12.2011 21:03

Цитата:

<input name="mail" id="ob" value="Обратная связь" type="text" onfocus="clearing ('ob')">
капец (рука лицо)
лучше передавать this функции так как в противном случаее каждому input'у прийдется передавать уникальный id. А если у вас таких интупов будет 20, 30, 40. кстати насколько я помню в ие были проблемы со значение value после того как вы ввели в инпут какие либо данные.

FINoM 20.12.2011 07:00

<input placeholder="Fuck yea">
Ну а если кроссбраузерно, то копай событие onblur, свойство this.defaultValue

SvetozarPNZ 20.12.2011 16:43

Зашел написать для начинающих, что нашел более масштабный способ с this, который увидел в одной из статей. А тут уже подсказали. Еще общий вопросик задам. А если вообще не хочется ничего в форме писать? Все во внешнем скрипте получится сделать? Есть ли в javascript какие-нибудь подобия прослушивателей событий для элементов?

SvetozarPNZ 20.12.2011 16:51

FINoM,
Спасибо, не знаю HTML5. Но не буду использовать пока рановато. С моей аудиторией еще долгие годы будет рановато...

FINoM 20.12.2011 19:30

Цитата:

Сообщение от SvetozarPNZ
А если вообще не хочется ничего в форме писать?

Тогда по событию submit очищать те поля где value === defaultValue.

SvetozarPNZ 21.12.2011 10:50

Я имел в виду совсем уйти от записей в коде HTML. Все обрабатывать во внешнем *.js. Убрать все онфокусы, онблюры...

По сабмиту у меня проверка будет. А на полях нужен placeholder, который в HTML 5, реализовать скриптом.

FINoM 21.12.2011 16:34

Цитата:

Сообщение от SvetozarPNZ
Я имел в виду совсем уйти от записей в коде HTML. Все обрабатывать во внешнем *.js.

Вынести обработчики событий в js файл. Это правильная практика.


Часовой пояс GMT +3, время: 14:42.