Используя jQuery, я придумала, пожалуй, самое повторно используемое решение. Да, он использует jQuery, но это очень мощный и полезный инструмент.
Я сделал немного магии с .data()
, чтобы сохранить исходное значение. Взгляните на этот JSFiddle .
Код:
$(document).ready(function() {
$("input").each(function() {
$(this).data("placeholder", $(this).val());
});
$("input").live("focus", function() {
if($(this).val() == $(this).data("placeholder"))
{
$(this).val('');
}
});
$("input").live("blur", function() {
if(!$(this).val().length)
{
$(this).val($(this).data("placeholder"));
}
});
});
Возможно, вы могли бы уменьшить его на несколько строк, но я хотел, чтобы это было понятно. Кроме того, это повлияет на любые новые элементы, добавляемые динамически в DOM, из-за использования .live()
.
EDIT
Чтобы сделать чистую разметку, взгляните на ЭТОТ JSFiddle ; он захватывает атрибут placeholder
и помещает его в value
как запасной вариант.
$(document).ready(function() {
$("input").each(function() {
$(this).data("placeholder", $(this).attr("placeholder"));
$(this).val($(this).data("placeholder"));
});
$("input").live("focus", function() {
if($(this).val() == $(this).data("placeholder"))
{
$(this).val('');
}
});
$("input").live("blur", function() {
if(!$(this).val().length)
{
$(this).val($(this).data("placeholder"));
}
});
} );