Типы полей input
Дата публикации: 09.03.2011
Ты знаешь о веб-формах все, да? Создаем <form>, добавляем несколько элементов <input type=»text» /> и, может быть, <input type=»password» />. В конце ставим кнопку <input type=»submit» />.
Так вот, ты не знаешь и половины. HTML5 определяет более десятка новых типов полей, которые можно использовать в формах.
<input type="search"/>
— для блоков поиска;<input type="number"/>
— для счетчика;<input type="range"/>
— для «ползунка»;<input type="color"/>
— для выбора цвета;<input type="tel"/>
— для телефонного номера;<input type="url"/>
— для веб адреса;<input type="email"/>
— для адреса электронной почты;<input type="date"/>
— для выбора даты из календаря;<input type="month"/>
— для месяца;<input type="week"/>
— для недели;<input type="time"/>
— для временной метки (timestamp);<input type="datetime"/>
— для точной абсолютной даты/времени;<input type="datetime-local"/>
— для локальных даты и времени.
Определить поддержку HTML5 типов полей можно приемом №4, описанным ранее. Сначала создаем фиктивный элемент input.
var i = document.createElement("input");
По умолчанию все поля имеют тип «text». Это важно.
Далее устанавливаем полю тип, поддержку которого хотим проверить
i.setAttribute("type", "color");
Если браузер поддерживает конкретный тип, это тип будет сохранен. В противном случае, тип поля будет проигнорирован и останется тип «text».
return i.type !== "text";
Чтобы не выполнять самому проверку 13 типов полей, можно воспользоваться Modernizr, который повторно использует один и тот же фиктивный элемент для определения поддержки всех тринадцати типов. Modernizr строит хеш из 13 ключей (типы полей) и 13-ти логических значений (true – если поддерживается и false – Если нет)
if (!Modernizr.inputtypes.date) { // если нет встроенной поддержки <input type="datetime"/> :( // делаем это по старинке с помощью // Dojo // или jQueryUI }
Куда дальше
- следующая — Замещаемый текст
- предыдущая — Геолокация
- содержание