Textbox watermark label with Protoype Javascript library

First we'll outline the desired functionality:

  • The textbox should show the label inside the textarea, possibly in a different colour to when normal text is entered, to highlight that it is just a label.
  • When the textbox gains focus (clicked on / tabbed to) the label should disappear.
  • When the textbox loses focus the label should reappear if (and only if) no other text has been entered.
  • The solution should degrade graceful in the absence of JavaScript

As we want to write good semantic XHTML we'll start with the following code:

<label for="searchbox">Search</label>
<input type="textbox" name="q" id="searchbox" value="" />

So with JavaScript disabled we'll get a standard label outside the textbox. If we want the fall-back behaviour to be hide the label, we can do that with CSS.

Now we'll create our Prototype class:

var WatermarkLabel = Class.create({
	initialize: function(id) {
		this.textbox = $(id);
		this.text = '';
 
		var labels = $$('label[for="' + id + '"]');
		if(labels.length) {
			this.text = labels[0].innerHTML;
			Element.hide(labels[0]);
		}
 
		this.textbox.observe('focus', this.focus.bindAsEventListener(this));
		this.textbox.observe('blur', this.blur.bindAsEventListener(this));
		this.blur();
	},
 
	focus: function(event) {
		if(this.empty)
			this.textbox.value = '';
		this.empty = false;
		this.textbox.removeClassName('empty');
	},
 
	blur: function(event) {
		if(this.textbox.value == '') {
			this.textbox.value = this.text;
			this.textbox.addClassName('empty');
			this.empty = true;
		}
	}
});

To initalise the code we simply use:

new WatermarkLabel('searchbox'); //the textbox's "id"

The constructor (initialize) creates a handle on the textbox (this.textbox). It then finds the first associated label, stores it's value (this.text) and hides it. Finally it sets up the event observers on the textbox (blur and focus) and fires the blur event.

The focus and blur events determine if the textbox is empty and clear/restore the label, and add/remove the "empty" class, so the textbox can be styled differently when the label is being show (usually a lighter text colour for the watermark effect).

Further complications may arise if you have other scripts pointing at your textbox that could change it's value. For this we need to set up another listener, and trigger it whenever we change the textbox value (unfortunately we can't manually trigger the 'change' event). Prototype's custom events let us achieve this nicely.

Add the following observer after the first two:

	this.textbox.observe('value:changed', this.change.bindAsEventListener(this));

and add the following method to the class:

	change: function(event) {
		this.empty = (this.textbox.value == '');
		this.textbox.value == '' ? this.blur(event) : this.focus(event);
	}

then whenever we change the value of the textbox with another piece of code we just have to remember to fire the event using:

	textboxElement.fire('value:changed');

All scripts are Public Domain.

Comments

cash call payday loans online loan an instant payday loan [url=http://onlineloan.icu/] online loans no credit check instant approval[/url]

bank accounts quick low interest payday loan payday loan online bad credit loans

Детский онлайн-проект, организован особенно для Вас лично и ваших ребят. Первостепенной проблемой интернет-проекта является - отрезок времени препровождения с выгодою, задорно и удовольствием. Думаем читать детский онлайн-проект будет интересно далеко не только молодым матерям, но и стреляным родителям с опытом. Желательно, с тем чтобы указанный детский сайт был бы всем вам проверенным приятелем и советником.
Детальнее:
лучшее детям

Детский онлайн-проект, организован особенно для Вас лично и ваших ребят. Первостепенной проблемой интернет-проекта является - отрезок времени препровождения с выгодою, задорно и удовольствием. Думаем читать детский онлайн-проект будет интересно далеко не только молодым матерям, но и стреляным родителям с опытом. Желательно, с тем чтобы указанный детский сайт был бы всем вам проверенным приятелем и советником.
Детальнее:
лучшее детям

womens viagra buy viagra online low price viagra generic viagra 100mg

womens viagra buy viagra online low price viagra generic viagra 100mg

viagra cheap generic viagra review viagra sale online best generic viagra

buying viagra generic viagra 100mg cheapest viagra prices online generic viagra

natural viagra alternative generic for viagra cheap generic viagra [url=https://almeidacorp.com/]buy viagra online[/url]

natural viagra alternative generic for viagra cheap generic viagra [url=https://almeidacorp.com/]buy viagra online[/url]

buy viagra online buy viagra online viagra story viagra generic

buy viagra online buy viagra online viagra story viagra generic

Revolutional update of captcha solution package "XRumer 16.0 + XEvil 4.0":
captcha regignizing of Google (ReCaptcha-2 and ReCaptcha-3), Facebook, BitFinex, Bing, Hotmail, SolveMedia, Yandex,
and more than 8400 another categories of captcha,
with highest precision (80..100%) and highest speed (100 img per second).
You can use XEvil 4.0 with any most popular SEO/SMM programms: iMacros, XRumer, GSA SER, ZennoPoster, Srapebox, Senuke, and more than 100 of other software.

Interested? There are a lot of introducing videos about XEvil in YouTube.

FREE DEMO AVAILABLE!

Good luck!

http://XEvil.net/

Revolutional update of captcha solution package "XRumer 16.0 + XEvil 4.0":
captcha regignizing of Google (ReCaptcha-2 and ReCaptcha-3), Facebook, BitFinex, Bing, Hotmail, SolveMedia, Yandex,
and more than 8400 another categories of captcha,
with highest precision (80..100%) and highest speed (100 img per second).
You can use XEvil 4.0 with any most popular SEO/SMM programms: iMacros, XRumer, GSA SER, ZennoPoster, Srapebox, Senuke, and more than 100 of other software.

Interested? There are a lot of introducing videos about XEvil in YouTube.

FREE DEMO AVAILABLE!

Good luck!

http://XEvil.net/

Испокон веков рыбная ловля являлась единственным из главных увлечений джентльменов. В случае, если ранее рыбная ловля кормило семейства и поддерживало им оставаться в живых, то теперь оно перешло в увлечения современных представителей сильного пола и даже женщин. Рыбалка в России исключительно популярна. Найти целесообразное объяснение этому далеко не так-то просто-напросто. Единственной из важных факторов считается традиция. Издревле промысел пищи была прямой функцией мужчин.
Поподробнее:
прикормка для карпов

Испокон веков рыбная ловля являлась единственным из главных увлечений джентльменов. В случае, если ранее рыбная ловля кормило семейства и поддерживало им оставаться в живых, то теперь оно перешло в увлечения современных представителей сильного пола и даже женщин. Рыбалка в России исключительно популярна. Найти целесообразное объяснение этому далеко не так-то просто-напросто. Единственной из важных факторов считается традиция. Издревле промысел пищи была прямой функцией мужчин.
Поподробнее:
прикормка для карпов

Рад всех приветствовать я люблю смотреть кино онлайн и хочу порекомендовать сайт http://filminov.ru/
В любое время вы сможете увидеть

фэнтези смотреть онлайн 2016-2017 новинки [url=http://filminov.ru/films/fentezy/]Лучшие фильмы фэнтези онлайн 2016-2017 новинки[/url]

Исторические фильмы cмотреть онлайн [url=http://filminov.ru/films/istoria/]http://filminov.ru/films/istoria/[/url]

новые криминальные фильмы бесплатно в хорошем качестве hd [url=http://filminov.ru/films/kriminal/]новые криминальные фильмы бесплатно в хорошем качестве hd[/url]

Лучшие мультики бесплатно в хорошем качестве смотреть онлайн hd 720p [url=http://filminov.ru/films/multik/]http://filminov.ru/films/multik/[/url]

Смотреть приключенческие фильмы бесплатно в хорошем качестве [url=http://filminov.ru/films/prikluch/]http://filminov.ru/films/prikluch/[/url]

Фильмы о спорте смотреть онлайн бесплатно [url=http://filminov.ru/films/sports/]http://filminov.ru/films/sports/[/url]

ужасы онлайн смотреть 2016-2017 новинки [url=http://filminov.ru/films/ujas/]http://filminov.ru/films/ujas/[/url]

Очень интересные фильмы:

[url=http://filminov.ru/films/37406-smotret-korolevskaya-svadba-onlayn.html]h...

Рад всех приветствовать я люблю смотреть кино онлайн и хочу порекомендовать сайт http://filminov.ru/
В любое время вы сможете увидеть

фэнтези смотреть онлайн 2016-2017 новинки [url=http://filminov.ru/films/fentezy/]Лучшие фильмы фэнтези онлайн 2016-2017 новинки[/url]

Исторические фильмы cмотреть онлайн [url=http://filminov.ru/films/istoria/]http://filminov.ru/films/istoria/[/url]

новые криминальные фильмы бесплатно в хорошем качестве hd [url=http://filminov.ru/films/kriminal/]новые криминальные фильмы бесплатно в хорошем качестве hd[/url]

Лучшие мультики бесплатно в хорошем качестве смотреть онлайн hd 720p [url=http://filminov.ru/films/multik/]http://filminov.ru/films/multik/[/url]

Смотреть приключенческие фильмы бесплатно в хорошем качестве [url=http://filminov.ru/films/prikluch/]http://filminov.ru/films/prikluch/[/url]

Фильмы о спорте смотреть онлайн бесплатно [url=http://filminov.ru/films/sports/]http://filminov.ru/films/sports/[/url]

ужасы онлайн смотреть 2016-2017 новинки [url=http://filminov.ru/films/ujas/]http://filminov.ru/films/ujas/[/url]

Очень интересные фильмы:

[url=http://filminov.ru/films/37406-smotret-korolevskaya-svadba-onlayn.html]h...

female viagra pills viagra without a doctor prescription usa cheapest brand viagra generic viagra without a doctor prescription

female viagra pills viagra without a doctor prescription usa cheapest brand viagra generic viagra without a doctor prescription

free viagra without prescription generic viagra for sale does viagra work generic viagra india

free viagra without prescription generic viagra for sale does viagra work generic viagra india

Что он может иметь в виду?

---
гг..неплохо fifa 14 15 скачать торрент, скачать составы для fifa 15 сезон 2017 или [url=http://15fifa.ru/skachat-kljuchi-fifa-15/33-skachat-fifa-15-crack-kryak-...скачать crack fifa 15[/url] fifa 15 скачать торрент от механиков

Что он может иметь в виду?

---
гг..неплохо fifa 14 15 скачать торрент, скачать составы для fifa 15 сезон 2017 или [url=http://15fifa.ru/skachat-kljuchi-fifa-15/33-skachat-fifa-15-crack-kryak-...скачать crack fifa 15[/url] fifa 15 скачать торрент от механиков

buy viagra uk viagra generic date viagra generic generic name for viagra

buy viagra uk viagra generic date viagra generic generic name for viagra

buy cheap generic viagra viagra generic viagra information generic viagra online pharmacy

buy cheap generic viagra viagra generic viagra information generic viagra online pharmacy

viagra sildenafil generic viagra without a doctor prescription canadian viagra [url=http://www.bitcapblog.com/]generic viagra online[/url]

viagra sildenafil generic viagra without a doctor prescription canadian viagra [url=http://www.bitcapblog.com/]generic viagra online[/url]

Essay Writing Service - EssayErudite.com

Our [url=https://essayerudite.com]essay writing service[/url] provides a full-scale writing assistance accessible online 24/7.
Apart from many other writing companies, we are rather picky when forming a professional staff of experts.
Moreover, we try to make our every customer feel safe and pleased with the service.

essay writing service

Essay Writing Service - https://essayerudite.com

buy viagra viagra generic purchase viagra [url=https://susamsokagim.com/]buy generic viagra online[/url]

Pages

Add new comment