Как-то передо мной была поставлена задача – сделать, чтоб при клике по полю ввода стандартный текст внутри пропадал. То есть всем известно, что у полей формы есть параметр value, который задает, что будет выведено в поле. Но когда нужно что-то ввести в это поле, то нужно предварительно удалить текст, который задан через этот параметр. В этой заметке описан легкий способ, как сделать, чтоб текст, который в поле, пропадал сразу по клику по полю, чтоб не было необходимости удалять ручками текст заданный параметром value.

Все это реализируется таким простым образом:


<input type="text" id="email" name="email" value="Ваш текст"
onfocus="if (this.value=='Ваш текст') this.value='';"
onblur="if (this.value==''){this.value='Ваш текст'}" />

Трюк основан на использовании двух событий onfocus и onblur. onfocus выполняется, когда поле становится активным. onblur выполняется, когда поле теряет фокус. Далее следует проверка if (this.value=='Ваш текст') this.value=' '; которая проверяет если в поле стоит дефолтный текст, то при фокусе он убирается, позволяя пользователю ввести свои данные. Проверка в событии onblur возвращает дефолтный текст, если пользователь ничего не ввел в поле.

Нюанс состоит в том, что событие onblur и прочие должны писаться полностью с маленькой буквы, ибо написания вида onBlur, onFocus не проходят валидацию. Еще одним недостатком является то, что при отключении JavaScripтов пользователю придется ручками удалять текст из полей так, как события не будут работать.

Пример реализации трюка

Если на фирме сломался компьютер и вы не знаете что делать – заключите договор на обслуживание компьютеров в Москве. Специалисты осуществят быстрое и качественное обслуживание компьютеров, устранив все неисправности. Компания Консультант АйТи.

Tags:

15 Отзывов to “Как убирать текст с полей при клике по ним”

  1. Игорь:

    Код вытащен из стандартного шаблона Joomla 1.5. Укажите уж хотя бы откуда выдернули…
    Поздравляю автора с таким умением. Америку открыли…

  2. Lolla:

    Рассмешил предыдущий комментарий. В стиле «основы джавы» придумали разработчики джумлы. События тоже они придумали? Этот код вытащен из мозгов и учебника который был еще до создания джумлы. Спасибо автору за напоминание.

  3. Jman:

    {this.value=’Ваш текст’} зачем фигурные скобки? для красоты? тогда почему нет в первом обработчике события?

  4. sss:

    автор молодец хороший сайт двигай его дальше пополняй и совершенствуйся
    удачи

  5. Zodios:

    Спасибо за лестный отзыв.
    Буду стараться.

  6. Александр:

    Было бы интересно почитать про способ управления полями не засоряя хтмл код, а из внешнего файла. Ведь не все цмс позволяют влезть в поле инпут. К примеру друпал. Вообще иметь библиотечку с внешними, легко настраиваемыми под себя скриптами, на мой взгляд, хорошая идея. Может кто знает где взять? Можно конечно и самому составить, но ведь этож время надо…

  7. Александр:

    Вообще, довольно трудно уйти с блога. Очень много нового и полезного, по крайней мере для меня. Спасибо автору

  8. Ялекс:

    Более «продвинутый» способ:

  9. Ялекс:

    onfocus="this.title=(this.title ? this.title : this.value); this.value=(this.value==this.title ? '' : this.value);" onblur="this.value=(this.value=='' ? this.title : this.value);"

  10. Александр:

    Хочу ответить на свой вопрос, заданный 10 декабря. Лучше всего использовать технику «ненавязчивого ява-скрипт». Можно реализовать с помощью библиотеки jquery. К примеру существует поле ввода с классом .pole, в этом случае нужно присоединить файл jquery и файл скрипта в котором запишем: $(function (){$(».pole»).bind(’focus’,function(event){this.value=»"})});
    Все работает, очень элегантно и просто. Код не засорен обработчиками и выглядит красиво. Пользуйтесь.

  11. Олег:

    Zodios, спасибо за то, что чётко сформулировали тему, попавшую в заголовок страницы: перерыл пол-инета, пока наткнулся на Вашу страницу (искал по разным запросам в разных поисковиках). Правда, код использовал Ялекс’а – ему также большое спасибо.

  12. facetus:

    СУПЕР! Спасибо!

  13. xpym-xpym:

    Спасибо автору!!!

  14. juli:

    Спасибо огромное автору и Ялекс’у!

  15. Игорь:

    Элегантное решение. Давно хотел разобраться в этой теме. Буду пользоваться, спасибо!

Оставить отзыв


Последние записи