Книга: HTML5 для веб-дизайнеров
Placeholder
Placeholder
Вот типичная задача, которая часто используется для поисковых форм и обычно решается написанием скрипта для DOM:
1. Если у поля формы нет значения, вставить туда текст-заполнитель.
2. Когда пользователь перемещает фокус на это поле, убрать текст-заполнитель.
3. Если пользователь выходит из поля и в нем по-прежнему нет значения, снова поставить текст-заполнитель.
Текст-заполнитель обычно показывается шрифтом более светлого цвета, чем шрифт самого значения поля формы. Это реализуется с помощью CSS, JavaScript или обоими этими инструментами вместе.
В документе HTML5 вы можете просто использовать атрибут placeholder (рис. 4.01):
<label for="hobbies">Ваши хобби</label>
<input name="hobbies" type="text"placeholder="Стряхивать филинов с деревьев">
Рис. 4.01. «Стряхивать филинов с деревьев» появляется в поле input посредством атрибута placeholder
Атрибут placeholder
прекрасно работает в браузерах, которые его поддерживают, но, увы, таких браузеров прямо сейчас не так-то много. Вы сами решаете, что вы хотите видеть в других браузерах, которые пока этот атрибут не поддерживают.
Вы можете вообще ничего не делать. В конце концов это функциональность из разряда «хорошо бы иметь», а не «обязательно иметь».
Либо же вы можете сделать запасное решение на JavaScript. В этом случае вам нужно убедиться, что скрипт на JavaScript будет исполняться только в браузерах, которые не понимают атрибут placeholder
.
Вот маленькая JavaScript-функция общего характера, которая тестирует, поддерживается тот или иной атрибут или нет:
function elementSupportsAttribute(element,attribute) {
var test = document.createElement(element);
if (attribute in test) {
return true;
} else {
return false;
}
}
Работает это так: в памяти создается «фантомный» элемент (в вашем документе его нет), а затем проверяется, есть ли в прототипе этого элемента свойство с тем же названием, что и атрибут, который вы передаете в эту функцию. Функция вернет true
или false
.
С помощью этой функции вы можете удостовериться, что JavaScript-решение будет исполняться только в тех браузерах, которые не поддерживают placeholder
:
if (!elementSupportsAttribute('input','placeholder')) {
// Код запасного решения на JavaScript.
}
- Mounting the New Partition and Populating It with the Relocated Files
- Converting a volume to NTFS
- Video
- 15.9.6. Текстовые поля ввода
- Adding a Wee Bit o’ Structure
- String Formats
- Работа с шаблоном страниц
- Определение страницы Default.aspx
- HandleErrorAttibute
- Использование элементов управления WebForms в MVC-приложениях
- Представление
- Мастерские страницы и элементы управления