Формы html5 примеры: Формы в HTML | WebReference

Пример формы HTML, элементы формы

Главная > Учебник HTML >

Что такое форма

Форма — это элемент страницы, с помощью которого пользователь может отправить данные на сервер. Примером HTML формы является форма авторизации на сайте. Пользователь вводит логин и пароль, нажимает кнопку, и эти данные отправляются на сервер. Форма никак не участвует в обработке данных, этим занимается программа на сервере. А форма лишь отправляет на него данные.

Формы связаны с работой сервера, и при изучении этой темы некоторые вещи могут быть пока непонятны. Но изучить формы всё равно нужно. Ведь это важная чать HTML. Формы есть на большинстве сайтов. И Вам нужно знать, как они работают.

Создание формы

HTML форма создаётся с помощью тэга <form>. Сам этот тэг не выводит на страницу никаких полей для ввода, кнопок и вообще ничего. Для этого существуют другие тэги. А тэг <form> объединяет в их в одну форму и отправляет данные из них на сервер.

Рассмотрим несколько важных атрибутов тэга <form>.

Атрибут action указывает файл, который запускается на сервере и получает данные из формы. Значением атрибута является путь к файлу.

Атрибут method устанавливает метод запроса. Чаще всего он имеет такие значения:

method=»get»

method=»post»

Пример HTML формы:

+

8
9

<form action="myfile.php" method="post">
</form>

Форме можно задать имя. Это делается с помощью атрибута name. Имя формы должно быть уникальным. Оно используется для нахождения формы при работе скриптов.

Внутри тэга <form> размещаются элементы формы. Элементы формы — это различные поля для ввода, кнопки и другие способы, с помощью которых пользователь вводит информацию. Для создания элементов формы используются разные тэги. Рассмотрим их подробно.

Тэг <input>

Тэг <input> может выглядеть на странице по-разному в зависимости от типа. В том числе он может создавать разные поля для ввода.

Типов тэга <input> достаточно много, поэтому он рассматривается в отдельной теме. А пока мы для примера создадим его на странице. Добавим его внутрь тэга <form>.

8
9
10

<form action="myfile.php" method="post">
<input name="login">
</form>

Атрибут name очень важен. Имя элемента формы передаётся на сервер вместе со значением. Данные отправляются на сервер в следующем виде:

имя = значение

Если в приведённом примере пользователь введёт в поле для ввода — Andrey, то на сервер будут отправлены данные в виде:

login=Andrey

Если элементу формы не задать имя, то данные из этого элемента на сервер отправлены не будут.

Тэг <textarea>

Тэг <textarea> создаёт многострочное поле для ввода текста. От тэга <input> он отличается тем, что имеет размер в несколько строк. Если вводимый текст не помещается в поле, то у него появляется полоса прокрутки. Добавим <textarea> в форму:

10

<textarea name="inform"></textarea>

Атрибут name имеет тот же смысл, что и у тэга <input>.

Полю для ввода можно задать размеры. Для этого есть атрибуты cols и rows. Они устанавливают ширину и высоту поля в строках. Вместо этого можно использовать CSS.

Установим тэгу <textarea> размеры.

10

<textarea name="inform" cols="30" rows="10"></textarea>

Тэг <textarea> является парным. Внутрь него можно пометсить текст, который сразу будет находится в поле для ввода. Пользователь при желании может его удалить.

10

<textarea name="inform" cols="30" rows="10">Текст</textarea>

У тэга <textarea> есть и другие атрибуты. Их Вы можете найти в справочниках.

Тэг <select>

Тэг <select> создаёт список, в котором пользователь выбирает один из пунктов. Каждый пункт создаётся с помощью тэга <option>. Пример:

11
12
13
14

<select name="punkt">
  <option value="p1">Первый пункт</option>
  <option value="p2">Второй пункт</option>
</select>

У тега <select> есть атрибут name, который используется так же, как у других элементов формы. Имя элемента отправляется в виде данных на сервер. А значение берётся из атрибута value того пункта, который выбрал пользователь. Если в приведённом примере пользователь выберет первый пункт, то на сервер отправятся данные в таком виде:

punkt=p1

Если у какого-то пункта списка есть атрибут selected, то этот пункт является выбранным по умолчанию. Никакого значения этому атрибуту устанавливать не нужно, его просто нужно указать в тэге.

Если высота списка не указана, то список имеет высоту в одну строку. Высота меняется с помощью атрибута size. При этом внешний вид списка зависит от его высоты. Если список имеет высоту в одну строку, то он имеет вид раскрывающегося списка. Если высота больше одной строки, то список отображается в виде блока. Ширина списка соответствует ширине самого большого пункта. Её также можно изменить с помощью CSS.

Изменим высоту списка. Посмотрите, как при этом изменится его внешний вид.

11

<select name="punkt" size="2">

Другие атрибуты тэгов <select> и <option> Вы можете найти в справочниках.

Тэг <label>

Тэг <label> можно использовать для каких-то пояснений внутри формы. Для примера добавим пояснение к тэгу <input>, который мы создавали ранее.

9

<label>Login:</label><input name="login">

Но в таком виде это просто текстовый тэг. Основная функция тэга <label> состоит в том, чтобы связывать пояснение с элементом формы. Пользователь может нажать на текст, и это соответствует нажатию на элемент формы. Это используется тогда, когда элемент формы имеет маленький размер и нажимать на него неудобно.

Чтобы связать элемент формы с текстом, его нужно поместить внутрь тэга <label>. Изменим 9 строку так, чтобы тэг <input> был связан с пояснением:

9

<label>Login:<input name="login"></label>

Нажмите на странице на слово «Login», поле для ввода окажется в фокусе.

Отправка формы

Чтобы отправить данные на сервер, пользователь должен нажать на кнопку с типом submit. Для её создания можно добавить в форму тэг <input> и установить ему тип submit.

Добавим в форму кнопку отправки данных на сервер:

15

<input type="submit" value="Отправить">

Атрибут value содержит текст, который отображается на кнопке.

Когда пользователь нажимает на кнопку, данные из формы отправляются на сервер. На сервере запускается файл, который указан в атрибуте action тэга <form>. Этот файл получает данные из формы.

Автофокус

Любому элементу формы можно установить атрибут autofocus. Ему не нужно указывать значение, он просто указывается в тэге. Элемент, которому установлен этот атрибут, оказывается в фокусе после загрузки страницы. Атрибут работает не во всех браузерах.

Новые элементы HTML5

❮ Предыдущая Следующая Глава ❯


Новые элементы HTML5

Начиная с 1999 года, HTML 4,01 изменилось многое. Сегодня некоторые из HTML 4.01 устарели, и эти элементы были удалены или переопределены в HTML5.

Для того, чтобы лучше справиться с современным интернет-приложений, HTML5 добавляет множество новых элементов и функций, таких как: рендеринга графики, мультимедийного контента, лучше структура страницы, лучшей формой обработки и несколько апи перетаскивания элементов, позиционирования, в том числе веб-приложения кэширование, хранение, веб-рабочий, и так далее.


Новые элементы в HTML5

Ниже приведен список новых элементов HTML5, а также описание того, что они используются.


Новые Семантические / Структурные элементы

HTML5 предлагает новые элементы для улучшения структуры документа:

Тег Описание
<article> Определяет статью в документе
<aside> Определяет содержание в стороне от содержимого страницы
<bdi> Определяет часть текста, который может быть отформатирован в другом направлении от другого текста
<details> Определяет дополнительные сведения о том, что пользователь может просмотреть или скрыть
<dialog> Определяет диалоговое окно или окно
<figcaption> Определяет заголовок для <figure> элемента
<figure> Определяет автономное содержание, как иллюстрации, диаграммы, фотографии, списки кодов и т.д.
<footer> Определяет нижний колонтитул документа или раздела
<header> Определяет заголовок для документа или раздел
<main> Определяет основное содержание документа
<mark> Определяет маркированы или выделенный текст
<menuitem>  Определяет элемент команды / меню, пользователь может вызвать из контекстного меню
<meter> Определяет измерение скалярного в пределах известного диапазона (a gauge)
<nav> Определяет навигационные ссылки в документе
<progress> Определяет ход выполнения задачи
<rp> Определяет , что показать в браузерах , которые не поддерживают ruby аннотаций
<rt> Определяет объяснение / произношение символов (для Восточной Азии книгопечатания)
<ruby> Определяет ruby аннотацию (for East Asian typography)
<section> Определяет раздел в документе
<summary> Определяет видимый заголовок для <details> элемента
<time> Определяет дату / время
<wbr> Определяет возможный разрыв строки

Подробнее о HTML5 семантике .


Новая форма элементов

Тег Описание
<datalist> Определяет заранее определенные параметры для элементов управления вводом
<keygen> Определяет поле пары ключей генератора (for forms)
<output> Определяет результат расчета

Прочитайте все о старых и новых форм элементов в HTML — формы элементов .


Типы ввода новых

Типы ввода новых Новые атрибуты ввода
  • color
  • date
  • datetime
  • datetime-local
  • email
  • month
  • number
  • range
  • search
  • tel
  • time
  • url
  • week
  • autocomplete
  • autofocus
  • form
  • formaction
  • formenctype
  • formmethod
  • formnovalidate
  • formtarget
  • height and width
  • list
  • min and max
  • multiple
  • pattern (regexp)
  • placeholder
  • required
  • step

Узнайте все о старых и новых типов ввода в ввода типов HTML .

Узнайте все о входных атрибутов в Атрибуты HTML ввода .


HTML5 — Новый Атрибут Синтаксис

HTML5 позволяет четыре различных синтаксиса для атрибутов.

Этот пример демонстрирует различные синтаксисов , используемые в <input> тега:

Тип пример
пустой<input type=»text» value=»John» disabled >
Некотируемые<input type=»text» value=John >
Дважды цитируемый<input type=»text» value=»John Doe» >
Одно цитируемое<input type=»text» value=’John Doe’ >

В HTML5, могут быть использованы все четыре Синтаксисы, в зависимости от того, что необходимо для этого атрибута.


HTML5 Графика

Тег Описание
<canvas> Определяет графический рисунок с помощью JavaScript
<svg> Определяет графический рисунок с помощью SVG

Подробнее о HTML5 Canvas .

Подробнее о HTML5 SVG .


Новые элементы медиа

Тег Описание
<audio> Определяет звук или музыкальный контент
<embed> Определяет контейнеры для внешних приложений (like plug-ins) , (like plug-ins)
<source> Определяет источники <video> и <audio>
<track> Определяет треки <video> и <audio>
<video> Определяет видео или кино содержания

Подробнее о HTML5 видео .

Подробнее о HTML5 Audio .

❮ Предыдущая Следующая Глава ❯

Функции форм HTML5 · WebPlatform Docs

Резюме

В этом руководстве мы познакомим вас с новыми функциями форм HTML5.

Введение

HTML5 включает множество новых функций, которые значительно упрощают написание веб-форм, делают их более мощными и согласованными в Интернете. В этой статье дается краткий обзор некоторых новых элементов управления форм и функций, которые были введены.

Зачем нам нужны новые функции формы?

Посмотрим правде в глаза, HTML-формы всегда были проблемой. Их не очень весело размечать, и их может быть сложно стилизовать, особенно если вы хотите, чтобы они были одинаковыми в разных браузерах и соответствовали общему внешнему виду вашего сайта. И конечным пользователям может быть неудобно их заполнять, даже если вы создаете их с осторожностью и вниманием, чтобы сделать их максимально удобными и доступными. Создание хорошей формы больше связано с ограничением ущерба, чем с приятным пользовательским опытом.

В то время, когда HTML 4.01 стал стабильной рекомендацией, Интернет был в основном статичным местом. Да, была странная форма для комментариев или сценарий гостевой книги, но обычно веб-сайты существовали только для того, чтобы посетители могли их читать. С тех пор сеть развивалась. Для многих браузер уже стал окном в мир сложных веб-приложений, которые почти не отличаются от настольных.

Рисунок 1: Некоторые сложные неродные элементы управления формы, сфальсифицированные с помощью JavaScript.

Чтобы удовлетворить потребность в более сложных элементах управления, необходимых для таких приложений, разработчики используют библиотеки и среды JavaScript, такие как jQueryUI и YUI. Эти решения, безусловно, совершенствовались с годами, но, по сути, они представляют собой обходной путь для компенсации ограниченных элементов управления формами, доступных в HTML. Они «подделывают» более сложные виджеты, такие как средства выбора даты и ползунки, накладывая дополнительную (но не всегда семантическую) разметку и множество JavaScript поверх страниц.

HTML5 стремится стандартизировать некоторые из наиболее распространенных элементов управления расширенными формами, заставляя их отображаться в браузере и устраняя необходимость в этих обходных решениях с большим количеством сценариев.

Знакомство с нашим примером

Чтобы проиллюстрировать некоторые новые функции, в этой статье создается простой пример форм HTML5. Он не предназначен для представления «реальной» формы (поскольку вам будет трудно найти ситуацию, когда вам нужны все новые функции в одной форме), но он должен дать вам представление о том, как выглядят различные новые аспекты. и вести себя.

Примечание. Внешний вид новых элементов управления формы и сообщений проверки отличается от браузера к браузеру, поэтому стилизация ваших форм, чтобы они выглядели достаточно единообразно в разных браузерах, по-прежнему требует тщательного рассмотрения.

Новые элементы управления формами

Поскольку формы являются основным инструментом ввода данных в веб-приложениях, а данные, которые мы хотим собирать, стали более сложными, необходимо было создать элемент ввода с более широкими возможностями для сбора данных. с большей семантикой и лучшим определением, а также для обеспечения более простой и эффективной проверки и управления ошибками.

Первый новый тип ввода, который мы обсудим, это type="number" :

 
 

Этот тип ввода создает особый тип поля ввода для ввода чисел — в большинстве поддерживаемых браузеров это отображается как текстовое поле ввода с элементом управления «счетчик», который позволяет вам увеличивать и уменьшать его значение.

Рисунок 2: Тип ввода числа .

Создание ползунка, позволяющего выбирать из диапазона значений, раньше было сложным, семантически сомнительным предложением, но с HTML5 это легко — вы просто используете тип ввода

range :

 
 

Рис. 3: Тип ввода диапазона .

Обратите внимание, что по умолчанию этот ввод обычно не показывает текущее выбранное значение или даже диапазон значений, которые он охватывает. Авторы должны предоставлять их другими способами; например, чтобы отобразить текущее значение, мы могли бы использовать элемент вместе с некоторым JavaScript для обновления его отображения всякий раз, когда пользователь взаимодействует с формой:

 
<тип ввода="диапазон"/> <выход>

и другие элементы управления датой/временем

HTML5 имеет ряд различных типов ввода для создания сложных средств выбора даты/времени, подобных тем, которые вы видите на большинстве сайтов бронирования авиабилетов/поездов.

Раньше они создавались с использованием несемантических кладжей, поэтому здорово, что теперь у нас есть стандартизированные и простые способы сделать это. Например:

 <тип ввода="дата"/>
<тип ввода="время"/>
 

Соответственно, они создают полностью функционирующее средство выбора даты и текстовый ввод, содержащий разделитель для часов, минут и секунд (в зависимости от указанного атрибута шага ), который позволяет вводить только значение времени.

Рисунок 4: дата и время типы ввода.

Но на этом все не заканчивается — доступно несколько других связанных типов ввода:

  • datetime : сочетает в себе функциональность двух рассмотренных выше, позволяя вам выбрать дату и время.
  • месяц : позволяет вам выбрать месяц, хранящийся внутри как число от 1 до 12, хотя разные браузеры могут предоставить вам более сложные механизмы выбора, такие как прокручиваемый список названий месяцев.
  • неделя : позволяет вам выбрать неделю, хранящуюся внутри в формате 2010-W37 (неделя 37 2010 года) и выбранную с помощью средства выбора даты, похожего на те, которые мы уже видели.

Этот тип ввода вызывает палитру цветов. Реализация Opera позволяет пользователю выбирать из набора цветов, вводить шестнадцатеричные значения непосредственно в текстовое поле или вызывать собственный инструмент выбора цвета операционной системы.

Рисунок 5: ввод цветов и собственные средства выбора цвета в Windows и OS X.

стилизованный ввод текста. Браузеры должны стилизовать эти входные данные так же, как и любую функцию поиска, специфичную для ОС. Тем не менее, помимо этого чисто эстетического соображения, важно отметить, что разметка полей поиска явно открывает возможность для браузеров, вспомогательных технологий или автоматических сканеров делать что-то умное с этими входными данными в будущем. Например, браузер мог бы предложить пользователю выбор автоматического создания пользовательского поиска для определенного сайта.

Рисунок 6. Ввод search в Opera в OS X.

Элемент

и атрибут списка

 
<список данных>
    

Рис. 7. Создание элемента ввода с предложениями с использованием списка данных .

, и

Как следует из их названий, эти новые типы ввода относятся к телефонным номерам, адресам электронной почты и URL-адресам (здесь включая URI и IRI). Браузеры будут отображать их как обычный ввод текста, но явное указание того, какой текст мы ожидаем в этих полях, играет важную роль при проверке формы на стороне клиента. Кроме того, на некоторых мобильных устройствах браузер переключается с обычной экранной клавиатуры для ввода текста на более контекстно-зависимые варианты. Опять же, вполне возможно, что в будущем браузеры будут использовать эти явно размеченные входные данные, чтобы предлагать дополнительные функции, такие как автозаполнение адресов электронной почты и телефонных номеров на основе списка контактов или адресной книги пользователя.

Новые атрибуты

В дополнение к явным новым типам ввода, HTML5 определяет ряд новых атрибутов для элементов управления формы, которые помогают упростить некоторые общие задачи и дополнительно указать ожидаемые значения для определенных полей ввода.

заполнитель

Обычный трюк с удобством использования в веб-формах заключается в наличии заполнителя содержимого в полях ввода текста — например, для предоставления дополнительной информации об ожидаемом типе информации, которую мы хотим, чтобы пользователь ввел — которая исчезает, когда пользователь начинает вводить значение или когда элемент управления формы получает фокус. Хотя раньше для этого требовался некоторый JavaScript (очистка содержимого поля формы в фокусе и сброс его к тексту по умолчанию, если пользователь покидал поле, ничего не вводя), теперь мы можем просто использовать заполнитель атрибут:

 
 

Рис. 8. Текстовый ввод с текстом-заполнителем .

autofocus

Еще одна распространенная функция, которая ранее зависела от сценариев, — это автоматическое фокусирование поля формы при загрузке страницы. Теперь этого можно добиться очень просто с помощью атрибута autofocus :

 
 

Имейте в виду, что на одной странице не должно быть более одного элемента управления формой autofocus . Вам также следует с осторожностью использовать подобную функциональность, особенно в ситуациях, когда форма представляет собой основную область интереса на странице. Хороший пример — страница поиска — при условии, что контента и поясняющего текста не так много, имеет смысл автоматически установить фокус на текстовый ввод формы поиска.

min и max

Как следует из их названий, эта пара атрибутов позволяет вам установить нижнюю и верхнюю границу для значений, которые можно вводить в поле числовой формы, например число, диапазон, время или типы ввода даты. Да, вы даже можете использовать его для установки верхней и нижней границ дат — например, в форме бронирования путешествия вы можете ограничить средство выбора даты, чтобы пользователь мог выбирать только будущие даты. Для 9Диапазон 0039 входов, min и max фактически необходимы для определения того, какие значения возвращаются при отправке формы. Код довольно прост и не требует пояснений:

 
 

step

Атрибут step можно использовать с числовым входным значением, чтобы задать степень детализации вводимых значений. Например, вы можете захотеть, чтобы пользователи вводили определенное время, но только с шагом в 30 минут. В этом случае мы можем использовать атрибут step , имея в виду, что для time вводит значение атрибута в секундах:

 
 

Новые механизмы вывода

Помимо новых элементов управления формой, с которыми пользователи могут взаимодействовать, HTML5 определяет ряд новых элементов, специально предназначенных для отображения и визуализации информации для пользователя.

Мы уже упоминали элемент , когда говорили о диапазон тип ввода — этот элемент служит для отображения результата вычисления или, в более общем смысле, для предоставления явно идентифицированного вывода скрипта (вместо того, чтобы просто вставлять некоторый текст в случайный диапазон или div). ). Чтобы сделать еще более явным, к какой конкретной форме относится , мы можем (аналогично ) передать список из ID в необязательном элементе для атрибут.

 <тип ввода = "диапазон"/>

 

и

Эти два новых элемента очень похожи, оба приводят к тому, что пользователю предоставляется шкала/полоса. Их отличие заключается в назначении. Как следует из названия, progress предназначен для представления индикатора выполнения, чтобы указать процент выполнения конкретной задачи, в то время как счетчик является более общим индикатором скалярного измерения или дробного значения.

Рис. 9. Индикатор выполнения.

Проверка

Проверка формы очень важна как на стороне клиента, так и на стороне сервера, чтобы помочь законным пользователям избежать и исправить ошибки, а также предотвратить отправку данных злоумышленниками, которые могут нанести вред приложению. Поскольку теперь браузеры могут получить представление о том, какие типы значений ожидаются от различных элементов управления формы (будь то их тип или любые верхние/нижние границы, установленные для числовых значений, дат и времени), они также могут предлагать встроенную проверку формы. — еще одна утомительная задача, которая до сих пор требовала от авторов написания множества JavaScript или использования какого-либо готового скрипта или библиотеки проверки.

Примечание. Для проверки элементов формы они должны иметь атрибут name , так как без него они все равно не будут отправлены как часть формы.

required

Одним из наиболее распространенных аспектов проверки формы является принудительное заполнение обязательных полей — запрет на отправку формы до тех пор, пока не будет введена определенная информация. Теперь этого можно просто добиться, добавив атрибут required к input , select или элемент textarea .

 
 

Рисунок 10: Проверка Opera на стороне клиента в действии, показывает ошибку для обязательного поля, которое было оставлено пустым.

тип и шаблон

Как мы видели, теперь авторы могут указывать типы записей, которые они ожидают от своих полей формы. Вместо того, чтобы просто определять текстовые входные данные, авторы могут явно создавать входные данные для таких вещей, как числа, адреса электронной почты и URL-адреса. В рамках проверки на стороне клиента браузеры теперь могут проверять, соответствует ли то, что пользователь ввел в этих более конкретных полях, ожидаемой структуре. По сути, браузеры могут оценивать вводимые значения по встроенному шаблону, который определяет, как выглядят допустимые записи в этих типах ввода, и могут предупреждать пользователя, когда его ввод не соответствует критериям.

Рисунок 11: Сообщение об ошибке Opera для недопустимых адресов электронной почты во вводе электронной почты .

Для других полей ввода текста, которые, тем не менее, должны следовать определенной структуре (например, формы входа, где имена пользователей могут содержать только определенную последовательность строчных букв и цифр), авторы могут использовать атрибут шаблона , чтобы указать свои собственные пользовательское регулярное выражение.

 
 

Поддержка браузеров

На рабочем столе [Opera] в настоящее время имеет наиболее полную реализацию новых типов ввода и встроенную проверку на стороне клиента, но поддержка для всех других основных браузеров также находится в стадии разработки, поэтому она не будет задолго до того, как мы сможем воспользоваться преимуществами этих новых мощных инструментов в наших проектах. А как насчет старых версий браузера?

По задумке браузеры, которые не понимают новые типы ввода, такие как , дата или , число , просто вернутся к обработке их как стандартных текстовых вводов — не столь удобных для пользователя, как их продвинутые аналоги HTML5, но в самом по крайней мере, они позволяют заполнить форму.

Заключение

В этой статье вы увидели новые элементы и атрибуты формы HTML5 и узнали, как их использовать. Более общие сведения о стандартных HTML-формах см. в предыдущей статье Основы HTML-форм.

См. также

Вопросы для упражнений

  • Почему полезно размечать меню в виде списков?
  • Когда вы разрабатываете навигационное меню, что вам нужно запланировать в будущем?
  • Каковы преимущества использования placeholder="[email protected]" name="email_address">

    Ссылка на нас! Если вы нашли HTML Dog полезным, рассмотрите возможность ссылки на нас.

    Автофокус

    Вам может понадобиться focus для перехода в поле формы при загрузке страницы. Если вы думаете о поисковой системе, например, когда вы попадаете на ее домашнюю страницу, вам обычно не нужно нажимать на поле поиска, чтобы начать печатать — вы можете сделать это сразу, потому что он уже находится в фокусе. Атрибут autofocus — быстрый способ добиться такого эффекта.

    
     

    Списки данных

    Список данных представляет собой список из предложений , который сопровождает текстовое поле:

      <список данных>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *