Рис.1 Пример формы HTML
В данном примере видно, что для элемента в зависимости от значения атрибута "type", поле может принимать различный вид. Например, в первом элементе (поз.2) поле предназначено для ввода текстовой информации (в данном случае для логина). В следующем (поз.3) - для ввода e-mail, далее (поз.4) - для пароля, а в последнем (поз.5) - кнопка для отправки формы.
Конечно, это упрощенный пример, в котором в основном использованы обязательные атрибуты. В реальности же обычно применяются и другие, определяющие характеристики полей.
При этом для каждого элемента имеется свой список атрибутов. Все их перечислять здесь не стоит, так как их достаточно много, и эту информацию лучше брать из специально предназначенной для этого справочной литературе по HTML.
В сети интернет можно найти большое количество заслуживающих доверия справочников по HTML. Например, как я уже ранее упоминал, для этих целей можно использовать справочник по веб-технологиям WebReference.ru,
одна из частей которого посвящена подробному описанию всех имеющихся в HTML5 элементов.
скриншот 33
Мы же здесь будем практически создавать формы для построения функциональных узлов нашего сайта. И постараемся как можно больше использовать разные элементы с различными атрибутами.
форма онлайн заказа
В создаваемом сайте предусматривается оформление заказа на установку противоугонной маркировки стекол автомобиля. Для этого необходимо ввести данные автомобиля и выбрать способа маркировки. После чего, на основе введенных данных, пользователю должна предоставляться информация о стоимости выполнения работ. Причем как полной стоимости, так и рассчитанной с учетом скидок.
Соответствующий вариант формы онлайн заказа, который мы будем создавать, приведен на следующем скриншоте.
Рис.2 Форма онлайн заказа
Здесь будут использоваться следующие элементы:
Форма регистрации, используемая в создаваемом сайте совмещена с онлайн заказом. Это связано с тем, что в данном случае личный кабинет пользователя предназначен для отображения состояния сделанных заказов и оформления новых. Поэтому вполне логично в этом варианте производить регистрацию одновременно с выполнением первого заказа.
Ниже показано, как предполагается сформировать эту функциональную часть.
Для увеличения / уменьшения размера изображения кликните по картинке
Рис.3 форма регистрации
Элементы, которые должны быть предусмотрены в этом варианте:
Форма авторизации
Для входа в личный кабинет необходима авторизация. Обычно такая форма состоит из полей ввода логина, пароля и кнопки для ее отправки. Также для восстановления учетных данных часто используются дополнительные ссылки типа: "Забыли логин?", "Забыли пароль?".
Несмотря на то, что такие дополнительные ссылки обычно располагаются вместе с элементами формы регистрации, но по сути к ее элементами они не относятся.
Ниже показан общий вид панели пользователя с элементами авторизации.
Для увеличения / уменьшения размера изображения кликните по картинке
В этом случае будут использоваться следующие элементы:
форма обратной связи
Само название этой формы говорит о ее назначении. Поэтому здесь должны быть все необходимые поля для отправки сообщения. В данном случае она будет состоять из четырех полей: два для ввода имени и почтового адреса отправителя и два для передачи самого сообщения.
Внешний вид такой формы показан на следующем скриншоте.
Для увеличения / уменьшения размера изображения кликните по картинке
Рис.5 Форма обратной связи
Здесь, помимо уже используемых элементов, должен добавиться еще один (
Таким образом, в этой, по сути, вводной статье, мы рассмотрели некоторые общие вопросы, связанные с формами HTML. И определились, с какими конкретными примерами мы будем в дальнейшем работать.
После чего можем перейти и к практическому созданию форм, составляя для каждого случая необходимый код и описывая их взаимодействие с соответствующими таблицами MySQL. Но это будет уже в следующих статьях.
С уважением, Николай Гришин
Формы представляют собой наиболее важные интерактивные элементы HTML, позволяющие разработчикам страниц интерактивно взаимодействовать с посетителями. С их помощью пользователь может возвращать комментарии по поводу посещения определенного узла, пересылать запросы или регистрироваться. Разработчик задает вопросы, создавая форму, а пользователь отвечает на них заполняя её. Содержимое формы либо передаётся сценарию CGI, либо по электронной почте посылается получателю. Сам процесс создания формы состоит из двух этапов. Первый заключается в создании самой формы, а второй заключает в себе создание на сервере сценария CGI. Форма создается при помощи различных тэгов и атрибутов, заключенных в пару
:
Элемент
Синтаксис формы для почты:
Элемент является базовым для всех элементов формы. Он используется для внедрения в форму кнопок, графических изображений , флажков, переключателей, паролей и текстовых полей. Несмотря на внешние отличия форм все они пересылают сценарию CGI данные в виде пар имя:значение. Элемент может иметь восемь атрибутов обозначаемые как type:
TEXT Однострочное текстовое поле, используется для ввода информации, которую нельзя ввести ни в одном из остальных элементов формы. Сюда вводятся имена, адреса, должности, телефоны, хобби, и данные практически любого типа. Элемент может иметь атрибуты:
Синтаксис:
PASSWORD Однострочное поле, в котором вместо вводимых символов отображаются звездочки. Элемент может иметь атрибуты:
maxlength. Задаёт максимально допустимую длину вписываемого значения в символах.
size. Задаёт максимально допустимую длину поля в символах.
value. Задаёт значение по умолчанию, которое можно менять.
Синтаксис:
HIDDENЕще один тип скрытого ввода информации. Позволяет пересылать сценариям информацию, которая не может быть изменена пользователем. Некоторые программы CGI используют скрытые поля для передачи информации из одной страницы в другую, например, имя или номер. Такой подход существенно облегчает работу пользователя, избавляя его от необходимости повторного ввода данных. Например, для пересылки файла с исходным кодом HTML используется следующая конструкция:
CHECKBOXФлажки используются для предоставления возможности пользователю ответить односложно: да/нет истина/ложь больше/меньше и т.д. Выглядит обычно в виде крестика или птички. Элемент может иметь атрибуты:
checked. Задаёт начальный статус флажка по умолчанию.
value. Задаёт значение по умолчанию, которое можно менять.
Синтаксис:
RADIO Переключатели во многом напоминают флажки, отличаясь лишь более широкими функциональными возможностями выбора. В группе переключателей может быть выбран лишь один. Для каждого переключателя указывается отдельный элемент INPUT.
SUBMIT Щелчок на этой кнопке приводит к пересылке содержимого формы сценарию, который был задан атрибутом action в элементе
RESET Кнопка используется для восстановления значений, заданных по умолчанию. Если значение по умолчанию не предусмотрено, то оно просто обнулится. Ширина кнопки может меняться в зависимости от других элементов. Имеет так же атрибут value.
Синтаксис:
IMAGE Во многом похож на кнопку SUBMIT, только в качестве кнопки используется изображение. Одним из преимуществ является возможность передачи координат щелчка пользователя, что позволяет организовать карту изображений. Элемент может иметь атрибуты:
src. Задаёт URL файла с изображением.
align. Задаёт выравнивание изображения относительно текста при помощи значений TOP, MIDDLE и BOTTOM.
name. Задаёт имя карты, которое так же пересылается сценарию вместе с координатами.
Синтаксис:
BUTTON Создает другую кнопку, браузеры пользователей могут использовать значение атрибута value в качестве исходного имени файла.
Синтаксис:
FILE Создает управляющий элемент выбор файла. Синтаксис:
ACCESSKEY Задает кнопку, при нажатии которой происходит обработка поля. Синтаксис:
SIZE Задает ширину элемента в пикселях. Синтаксис:
DISABLED Отключает возможность изменять содержимое поля или положение кнопки. Синтаксис:
Элемент
name. Задаёт ключевое слово, по которому сценарий может обращаться к его содержимому.
rows. Задаёт высоту области в строках.
cols. Задаёт ширину области в символах.
Синтаксис:
Элемент может принимать форму раскрывающегося списка или меню элементов. Имеет вложенный тэг и атрибуты:
name. Задаёт имя.
size. Задаёт максимальное количество элементов списка, одновременно отображаемых на экране.
multiple. Задаёт возможность одновременного выбора нескольких значений.
Элемент же задает возможные варианты выбора меню Синтаксис: значение
Имеет атрибуты:
selected. Задаёт изначально выбранное слово.
value. Задаёт значение выбранного слова для сценария.
Элемент применяется для логической группировки элементов внутри тэга имеет атрибут label:
Синтаксис:
Выберите:
Первый
Второй
Третий Четвертый
Элемент Это самый простой элемент, позволяющий создать подобие формы и ввода строки, содержащей текст и генерации запроса.
Пример: Допустим что на текущей странице задан базовый URL при помощи элемента тогда, если пользователь введет в поле ключевые слова для поиска слово1,слово2,слово3, то браузер сформирует и отошлет запрос для поисковой машины сервера в виде: http://www.название.домен/?слово1+слово2+слово3 Если поисковая программа сервера поддерживает стандартный синтаксис запроса с использованием знаков? и +,поиск будет осуществлен.
Элемент является альтернативой элементу с более богатыми возможностями - например, с заданием альтернативного текста. Синтаксис:
name задает имя элементу.
value задает значение элементу.
type при использовании в качестве кнопки принимает значения: button, submit и reset.
disabled делает недоступным данный элемент
tabindex определяет положение в последовательности перехода клавишей Tab, отключенные поля форм не участвуют в очередности.
accesskey задает клавишу доступа.
Элемент применяется для альтернативного задания информации для управляющих полей формы. Поддерживает атрибут for, который связывает элемент с другим элементом формы, а значение атрибута for должно совпадать со значением атрибута id связанного управляющего элемента.
Элемент
позволяет логически группировать элементы формы. Синтаксис: имя
Элемент позволяет давать наименования логическим группам элементов формы. Синтаксис: имя
В процессе навигации по сайтам пользователь, в основном, только щёлкает по ссылкам
чтобы перемещаться по веб-страницам.
Но понятно, что пользователю иногда требуется обеспечить собственные поля ввода
. Эти виды взаимодействия включают в себя:
регистрацию и вход на сайтах; ввод личной информации (имя, адрес, данные кредитной карты и др.); фильтрацию контента (с помощью выпадающих списков, флажков и др.); выполнение поиска; загрузку файлов.
Чтобы приспособиться к этим потребностям, HTML предлагает интерактивные элементы управления
формы:
текстовые поля (для одной или нескольких строк); переключатели; флажки; выпадающие списки; виджеты для загрузки; кнопки отправки.
Эти элементы управления задействуют разные теги
HTML, но большинство из них использует тег
. Поскольку это самозакрывающий элемент, тип поля определяется его атрибутом type
:
Элемент
является блочным элементом, который определяет интерактивную
часть веб-страницы. Как результат, все элементы управления (такие как
,
или
) должны находиться внутри
элемента
.Два атрибута HTML необходимы
:
action
содержит адрес, который определяет, куда
будет отправлена информация формы; method
может быть либо GET, либо POST и определяет, как
будет отправлена информация формы.
Как правило, информация формы посылается на сервер
. Как
эти данные затем будут обработаны выходит за рамки данного руководства.
Подумайте о форме как о наборе элементов управления, которые работают вместе, чтобы выполнить одну
операцию. Если вы написали форму входа на сайт, у вас могло быть три
поля:
Эти три элемента HTML будут заключены внутри одной формы
.
Вы можете аналогично добавить форму регистрации на той же HTML-странице, в отдельном элементе
.Текстовые поля Почти всем формам требуется текстовый
ввод от пользователей, чтобы ввести своё имя, адрес электронной почты, пароль, адрес и др. Текстовые поля формы приходят в разных вариантах.
Хотя эти поля очень похожи и позволяют пользователям вводить текст любого рода (даже неправильный), их тип обеспечивает специфическую семантику
для ввода, определяя, какую информацию поле должно
содержать.
Браузеры могут впоследствии немного изменить интерфейс элемента управления, чтобы повысить интерактивность
или подсказать, какое содержимое ожидается.
К примеру, поле для пароля показывает точки вместо символов. А поле для чисел позволяет увеличивать/уменьшать значение с помощью клавиш вверх и вниз.
placeholder Текстовые поля могут отображать подсказывающий
текст, который исчезнет, как только будет введён некоторый текст.
Если вы начинаете набирать что-то, то увидите как текст «Введите своё имя» исчезнет.
Так как элементы формы сами по себе не очень описательны, им, как правило, предшествует текстовая метка
.
Email
В то время как placeholder
уже обеспечивает некоторую подсказку о том, какое ожидается содержание, метки имеют преимущество оставаясь видимыми в любое время и могут использоваться наряду с другими типами элементов формы, таких как флажки или переключатели.
Хотя вы можете применять короткие абзацы для описания элементов формы, использование
является семантически более правильным, потому что они существуют только в формах.
также может быть связан с определённым элементом формы с помощью атрибута for
, соответствующему значению id
у поля.
Имя
При щелчке по метке фокус переходит к текстовому полю и помещает курсор внутрь него. Пока эта связка кажется бесполезной, но пригодится с флажками и переключателями.
Флажки Флажки
- это элементы формы, которые имеют только два состояния: включено или выключено. Они в основном позволяют пользователю сказать: «Да» или «Нет» для чего-то.
Запомнить меня
Поскольку может оказаться сложно щёлкнуть по небольшому флажку, рекомендуется поместить флажок и его описание внутрь
.
Я согласен с условиями
Вы можете щёлкнуть по тексту «Я согласен с условиями» чтобы переключить флажок.
По умолчанию флажок выключен. Вы можете пометить его включенным, просто используя атрибут checked
.
Использовать мой платёжный адрес
Переключатели Вы можете предоставить пользователю список вариантов
на выбор с помощью переключателей.
Для работы этого элемента формы, ваш HTML-код должен сгруппировать
список переключателей вместе. Это достигается с помощью одного и того же значения для атрибута name:
Семейное положение
Холост
Женат
Разведён
Вдовец
Поскольку все переключатели используют одинаковое значение атрибута name
(в данном случае значение status
), выбор одного из вариантов отменит все остальные. Переключатели являются взаимоисключающими
.
Разница между переключателями и флажками Хотя флажок существует сам по себе
, переключатели могут появляться только в виде списка
(что означает, по меньшей мере два варианта).
Кроме того, щелчок по флажку является произвольным
, в то время как выбор одного из переключателей является обязательным
. Вот почему невозможно выключить переключатель, если выбрать ближайший вариант. В конце концов, всегда выбирается один из переключателей.
Выпадающие меню Если количество вариантов для выбора занимает слишком много места, вы можете воспользоваться выпадающими меню
.
Они работают подобно переключателям, отличается только компоновка.
Январь
Февраль
Март
Апрель
Май
Июнь
Июль
Август
Сентябрь
Октябрь
Ноябрь
Декабрь
Множественный выбор из выпадающего меню Если добавить атрибут multiple
, вы можете предоставить возможность выбрать несколько вариантов.
Какими браузерами вы пользуетесь?
Google Chrome
Internet Explorer
Mozilla Firefox
Opera
Safari
Выберите несколько вариантов посредством удержания Ctrl (или ⌘) и щелчка. Это может быть хорошей альтернативой применению несколько флажков в строке.
Пример: полная форма регистрации
Обращение
Г-н
Г-жа
Имя
Фамилия
Email
Телефон
Пароль
Подтвердите пароль
Страна
Канада
Франция
Германия
Италия
Япония
Россия
Великобритания
США
Я согласен с условиями использования
Зарегистрироваться
Также доступны и другие элементы форм, но мы рассмотрели наиболее используемые.
Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы разобрали проблему с кодировкой на сайте
. В данной статье я бы хотел рассказать о создании форм в HTML
. Мне кажется, что это самая важная тема в HTML. Мне вспоминаются слова моей учительницы по английскому языку. Она говорила, если вы знаете значения всех словоформ глагола get, то вы сможете объясниться на английском только с их помощью. То же самое и с формами в HTML
. Если вы знаете формы — вы уже неплохо знаете HTML. Сейчас наверное уже практически и нет сайтов, на которых отсутствуют формы html. Формы используются везде: при создании регистрации, авторизации, подписки, гостевой книги, форума, создании своего движка, да абсолютно везде. Статья наверняка получится большая, так что приготовьтесь. Давайте приступим к изучению формы сразу на примере:
Создание форм HTML
Имя
Пароль
Введите сообщение...
Выберите поисковую систему Google
Yandex
Rambler
Готовы изучить формы?
Да
Конечно да=)
Выберите один из вариантов
Вариант 1
Вариант 2
Вариант 3
Файл
Простая кнопка
Отправить форму
Очистить поля формы
При первом взгляде бросает в дрожь. На самом деле здёсь всё просто, давайте разбираться потихоньку:
Создание формы
начинается с ключевого слова
. Это парный тег, соответственно создание формы должно завершаться тегом
. У тега
есть несколько атрибутов. Атрибут name
задаёт имя формы (это нужно для обработки формы, например в Javascript). Можно, конечно, и не указывать имя, но всё-таки рекомендую это делать. В атрибуте action
указывается имя скрипта, который будет обрабатывать форму (обычно это скрипт на php) и выглядит это так action="request.php"
. В нашем случае мы не обрабатываем форму. Атрибут method
указывает каким способом мы будем передавать данные: открытым (get
) или скрытым (post
). Сразу пример того, что будет показано в строке браузера при этих двух различных атрибутах:
1) Если мы используем метод post: mysite.ru/request.php
.
2) Если мы используем метод get: mysite.ru/request.php?myname="Alex"&surname="Gulynin"
.
Думаю различия понятны.
Элементы формы:
1) Тестовое поле
. Текстовое поле создаётся с помощью тега
, как впрочем и все элементы формы. Атрибут type="text"
как раз и отвечает за то, что будет создано текстовое поле. Атрибут name
— это имя, как и во всех элементах формы. Атрибут value
— это значение по умолчанию.
2) Поле для ввода пароля
. Задаётся с помощью все то же тега
с атрибутом type="password"
.
3) Текстовая область
. Задаётся с помощью тега
. Это парный тег, текстовая область должна закрываться тегом
. У этого элемента есть несколько атрибутов. Также можно задать атрибут name
. Атрибут rows
отвечает за количество строк, атрибут cols
— за количество столбцов. Современные браузеры могут расширять текстовую область, чтобы удобнее было вводить в неё текст. Атрибуты rows и cols — это, так сказать, минимальные значения, до которых можно сжать форму (изначально при загрузке страницы текстовая область имеет размеры, которые заданы атрибутами rows и cols).
4) Радиокнопки
. Смысл радиокнопок в том, чтобы выбрать какое-то одно значение из нескольких. Радиокнопки
также создаются с помощью тега
с атрибутом type="radio"
. Атрибут value
указывает значение, которое соответствует радиокнопке. Хочу обратить ваше внимание вот на какой момент: в нашем примере все 3 кнопки имеют одинаковое значение атрибута name
. Если они будут иметь разное значение атрибута name, ты мы сможем нажать на них все. Соответственно не получится их правильно обработать. Атрибут checked
(значения у него нет) указывает на то, какая радиокнопка будет выбрана по умолчанию.
5) Флажки
. В отличие от радиокнопок, флажки можно прощелкать все. Наберите пример и убедитесь в этом сами. Создаются с помощью тега
с атрибутом type="checkbox"
. Смысл остальных атрибутов такой же, как и у радиокнопок. Скажу только, если мы все галочки снимем, то у нас передастся пустое значение, т.е. в нашем случае будет mycheck=""
.
6) Выпадающий список
. Выпадающий список создаётся с помощью тега
и заканчивается тегом
. В данной конструкции необходимо ещё с помощью тега
указать элементы списка.
7) Поле для отправки файла
. Наверняка вы не раз загружали и отправляли файл, например при задании аватарки для своего профиля. Такой элемент реализуется с помощью тега
с атрибутом type="file"
. Самое сложное — это обработать правильно файл, но этому будет посвящена отдельная статья.
8) Скрытое поле
. Иногда встаёт необходимость передать какие-нибудь данные, вместе со всей остальной формой. Именно для этого и служит тег
с атрибутом type="hidden"
. На самой форме его не видно, но если вы посмотрите исходный код страницы (правой кнопкой по странице и выбрать "исходный код" или нажать сочетание клавиш "ctrl+u"), та данное поле можно будет увидеть.
9) Кнопки
. Кнопки создаются с помощью тега
с атрибутом type="button"
. Атрибут value
отвечает за то, что будет написано на кнопке. Кнопки обычно служат для обработки какого-то события. О событиях кнопок можно будет прочитать в одной из следующих статей.
10) Отправка формы
. По сути это такая же кнопка, но с атрибутом type="submit"
. При нажатии на кнопку форма перейдёт на обработку по пути, указанному в атрибуте action тега