Используя jQuery, вы можете сделать:
$("input:text").each(function ()
{
// store default value
var v = this.value;
$(this).blur(function ()
{
// if input is empty, reset value to default
if (this.value.length == 0) this.value = v;
}).focus(function ()
{
// when input is focused, clear its contents
this.value = "";
});
});
И все это можно вставить в собственный плагин, например:
jQuery.fn.hideObtrusiveText = function ()
{
return this.each(function ()
{
var v = this.value;
$(this).blur(function ()
{
if (this.value.length == 0) this.value = v;
}).focus(function ()
{
this.value = "";
});
});
};
Вот как бы вы использовали плагин:
$("input:text").hideObtrusiveText();
Преимущества использования этого кода:
- Это ненавязчиво и не загрязняет DOM
- Повторное использование кода: работает с несколькими полями
- Он сам определяет значение по умолчанию для входных данных
Подход без jQuery:
function hideObtrusiveText(id)
{
var e = document.getElementById(id);
var v = e.value;
e.onfocus = function ()
{
e.value = "";
};
e.onblur = function ()
{
if (e.value.length == 0) e.value = v;
};
}