HTML5 предоставляет тип поля tel, предназначенный для использования в контексте телефонных номеров.
Ваш номер телефона: <input type="tel" name="telephone">
На смартфонах и планшетах, при нажатии на поле, открывается клавиатура для ввода номера телефона.
Поля для веб-адресов с типом url
Поля типа url предназначены для ввода веб-адресов.
<input type="url" />
Поля URL автоматически проходят валидацию. Браузеры должны проверить, был ли введен синтаксически правильный URL в такие поля.
Поля вывода с output
С помощью поля output можно выводить контент. Это может быть полезно, например, в контексте JavaScript. Такое поле может использоваться для вывода переменных. Однако его также можно использовать для вывода расчитанных значений. Поле предназначено исключительно для вывода данных. Ввод пользователем невозможен.
<script>
/* <![CDATA[ */
function output(){
wort1="Привет,"
wort2="Мир!"
document.forms[0][0].value=wort1+wort2
}
/* ]]> */
</script>В этом примере объявлены две переменные. Содержимое этих переменных должно отображаться в поле output.
<body onload="output()">
<form action="evaluation.php" method="get" name="form">
<output name="field" />
</form>
</body>
Браузеры, такие как Opera, показывают нужное значение. Те браузеры, которые не могут обрабатывать тег output, просто его игнорируют.output имеет три атрибута.
• form – Форма, в которой содержится элемент output.
• for – Определяет связь между полями или значениями, на которые сослаться элементу output. Значения и поля должны разделяться пробелами.
• name – Укажете имя, содержимое поля будет отправлено при отправке формы.
• value – Указывает значение поля.output также подходит для математических расчетов. Например, через диалоговые окна Prompt можно запросить значения и перемножить их между собой.
<!DOCTYPE html>
<html >
<head>
<title>output</title>
<script>
/* <![CDATA[ */
function multiply(){
a=parseInt(prompt("Значение 1.",0));
b=parseInt(prompt("Значение 2.",0));
document.forms["form"]["result"].value=a*b;
}
/* ]]> */
</script>
</head>
<body onload="multiply()">
<form action="#" method="get" name="form">
<label>Результат умножения:</label>
<output name="result" />
</output>
</form>
</body>
</html>Открыв страницу, появится диалоговое окно, через которое будет запрошено первое значение.
Подтвердив его, откроется второе окно. (Если в любом из окон нажать Отмена, результат будет NaN, то есть не число).
Подтвердив и второе окно, скрипт передаст результат умножения в поле output в виде значения.
Индикаторы прогресса с тегом progress
Индикатор прогресса может быть реализован с помощью элемента progress. Это может быть полезно, например, при загрузке файлов.
Google уже интерпретирует данный элемент. Другие браузеры, которые его не знают, просто отображают его содержимое.
Загрузка ...
<progress value="250" max="1000">
<span id="downloadProgress">25</span>%
</progress>
Элемент progress имеет два атрибута:
• max – Указывает общее количество шагов.
• value – Задает количество уже выполненных шагов.
Элемент progress становится действительно интересным, когда вступает в игру JavaScript. Лучше всего показать пример использования комбинации progress и JavaScript на примере.
В этом примере предполагается, что есть форма, которая должна быть заполнена в несколько шагов. Последовательно запрашиваются следующие данные:
• Имя
• Фамилия
• Улица
• Почтовый индекс
• Город
Теперь можно запросить эти несколько значений на одной странице. Но что, если требуется получить очень много информации от пользователя? В этом случае обширные формы скорее отпугивают. Поэтому лучше разбить формы на несколько страниц.
Предположим, что вы открываете форму.
Здесь вас спросят о вашем имени. Строка состояния под полем реализована с помощью элемента progress.
<fieldset id="schritt1" style="display: none;"> <p>Имя: <input type="text" name="vname" size="30"></p> <p><progress max="5" value="1">Шаг 1 / 5</progress></p> <p><input type="button" value="Дальше" onclick="naechserSchritt(2)"></p> </fieldset>
Очень важными являются несколько вещей в этом синтаксисе. Сначала все элементы fieldset устанавливаются в невидимое состояние. Даже если на первый взгляд это не так, форма на самом деле представляет собой одну страницу. Отдельные поля были вставлены в собственные элементы fieldset. И эти элементы fieldset (включая их содержимое) не видны.
Чтобы скрытые элементы стали видимыми после нажатия соответствующих кнопок Дальше, используется функция JavaScript-switch. Как это работает, будет показано далее в этом учебнике.
<progress max="5" value="1">Шаг 1 / 5</progress>
Вместо индикатора прогресса можно увидеть текст по схеме Шаг 2 / 5.
Форма выглядит следующим образом:
<form method="post" action="#"> <fieldset id="schritt1" style="display: none;"> <p>Имя: <input type="text" name="vname" size="30"></p> <p><progress max="5" value="1">Шаг 1 / 5</progress></p> <p><input type="button" value="Дальше" onclick="naechsterSchritt(2)"></p> </fieldset> <fieldset id="schritt2" style="display: none;"> <p>Фамилия: <input type="text" name="nname" size="30"></p> <p><progress max="5" value="2">Шаг 2 / 5</progress></p> <p><input type="button" value="Дальше" onclick="naechsterSchritt(3)"></p> </fieldset> <fieldset id="schritt3" style="display: none;"> <p>Улица: <input type="text" name="strasse" size="30"></p> <p><progress max="5" value="3">Шаг 3 / 5</progress></p> <p><input type="button" value="Дальше" onclick="naechsterSchritt(4)"></p> </fieldset> <fieldset id="schritt4" style="display: none;"> <p>Почтовый индекс: <input type="text" name="plz" size="30"></p> <p><progress max="5" value="4">Шаг 4 / 5</progress></p> <p><input type="button" value="Дальше" onclick="naechsterSchritt(5)"></p> </fieldset> <fieldset id="schritt5" style="display: none;"> <p>Город: <input type="text" name="ort" size="30"></p> <p><progress max="5" value="5">Шаг 5 / 5</progress></p> <input type="submit" value="Конец"> </fieldset> </form>
Здесь важны три вещи:
• Каждому элементу fieldset присваивается идентификатор.
• Все элементы fieldset устанавливаются в display: none.
• Кнопкам назначается функция naechsterSchritt(n).
Функция naechsterSchritt(n) выглядит следующим образом:
<script>
/* <![CDATA[ */
function naechsterSchritt(n) {
switch(n) {
case 1:
document.getElementById('schritt1').style.display = "block";
break;
case 2:
document.getElementById('schritt1').style.display = "none";
document.getElementById('schritt2').style.display = "block";
break;
case 3:
document.getElementById('schritt2').style.display = "none";
document.getElementById('schritt3').style.display = "block";
break;
case 4:
document.getElementById('schritt3').style.display = "none";
document.getElementById('schritt4').style.display = "block";
break;
case 5:
document.getElementById('schritt4').style.display = "none";
document.getElementById('schritt5').style.display = "block";
break
default: break;
}
}
naechsterSchritt(1);
/* ]]> */
</script>
Эта функция показывает текущий элемент fieldset и скрывает остальные элементы fieldset. Обязательно разместите эту функцию после определения полей. Поэтому лучше установить ее за закрывающим тегом </form>.