Красивые формы ввода данных html. Создание формы. Несколько более сложная форма

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

Сама форма создаётся с помощью тега

, внутри которой могут быть любые необходимые теги, и характеризуется следующими необязательными параметрами:

  1. адрес программы на веб-сервере, которая будет обрабатывать содержимое данных формы;
  2. элементами формы, которые представляют собой стандартные поля для ввода информации пользователем;
  3. кнопку отправки данных на сервер.

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

Пример 1. Ошибочное использование форм

HTML5 IE Cr Op Sa Fx

Формы

Перед отправкой данных браузер подготавливает информацию в виде пары «имя=значение», где имя определяется атрибутом name тега или другим тегом допустимым в форме, а значение введено пользователем или установлено в поле формы по умолчанию. После нажатия пользователем кнопки Submit, происходит вызов обработчика формы, который получает введенную в форме информацию, а дальше делает с ней то, что предполагает разработчик. В качестве обработчика формы обычно выступает программа, заданная атрибутом action тега

. Программа может быть написана на любом серверном языке вроде PHP, Python, C# и др.

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

Пример 2. Простая форма

HTML5 IE Cr Op Sa Fx

Формы

В качестве значения атрибута action можно указать также адрес электронной почты, начиная его с ключевого слова mailto: . При отправке формы будет запущена почтовая программа, установленная по умолчанию. В целях безопасности в браузере задано, что отправить незаметно информацию, введенную в форме, по почте невозможно. Для корректной интерпретации данных используйте атрибут enctype со значением text/plain в теге

(пример 3).

Пример 3. Отправка формы по почте

HTML5 IE Cr Op Sa Fx

Формы

Браузеры неоднозначно работают с таким кодом. Firefox предложит список подходящих приложений для отправки почты (рис. 1), Internet Explorer выведет предупреждение (рис. 2) и попытается запустить программу, сопоставленную с почтой, Opera подобно Firefox предложит список вариантов подходящих для отправки почты (рис. 3).

Рис. 1. Запуск приложения в Firefox

Рис. 2. Предупреждение Internet Explorer

Рис. 3. Выбор программы в Opera

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

Внутреннее устройство

Фактически форма состоит из двух частей: визуального оформления и скрипта, который обрабатывает введённые данные. Чтобы написать скрипт, нужно владеть одним из языков программирования. Мы здесь их изучением не занимаемся, поэтому будем разбирать HTML-составляющую - учиться создавать интерфейс формы, предполагая, что где-то у нас уже есть обрабатывающий её скрипт.

HTML-форма создаётся с помощью парного тега

, внутри которого располагаются теги её элементов.

Теги

Перед тем, как показывать примеры, пройдёмся по тегам.

. Создаёт форму. Если сравнивать форму с таблицей, то тег выполняет ту же роль, что и тег

. К нему прилагаются следующие атрибуты.

  • action . Адрес скрипта или документа, который обрабатывает данные формы. В качестве значения указывается URL.
  • method . Метод передачи данных обработчику. Можно указать GET (по умолчанию) или POST. GET подразумевает передачу данных в виде части URL. Возможно, вы видели в адресах что-то вроде?id=225. Это оно и есть. Метод POST работает по-другому, а потому передаваемые данные от пользователя скрыты. Он более безопасен, позволяет передавать больше информации, в том числе и файлы. Но всё это больше касается программирования, нежели HTML-разметки.
  • accept-charset . Устанавливает кодировку.
  • autocomplete . Включает (on) или отключает (off) автозаполнение форм, когда браузер сам подсказывает вам, что вводить, основываясь на том, что вы набирали в прошлый раз. Отключать функцию имеет смысл для конфиденциальных форм, чтобы обозреватель ненароком не показал важных данных.
  • name. Имя формы.

Есть и ещё атрибуты, но используются они крайне редко.

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

  • type . Главный атрибут тега , определяющий, как уже говорилось, тип элемента ввода. Значений у него так много, и они так важны, что хватило на целую таблицу (см. ниже).

Значение

Описание

Флажки. С их помощью вы можете выбрать сразу несколько вариантов

Кнопка выбора файла

Скрытое поле, в браузере не отображается

Кнопка с картинкой

Поле для ввода пароля. Обычное текстовое поле, но вводимые символы скрываются за звёздочками (*)

Переключатели. Почти флажки, но с их помощью можно выбрать только один из предложенных вариантов

Кнопка сброса данных формы к первоначальным значениям

Кнопка отправки данных на сервер. Обычно вы нажимаете их, чтобы подтвердить ввод - Сохранить, Применить, ОК

Текстовое поле

Множество новых значений появилось в HTML5, но они, к сожалению, пока (июнь 2016) поддерживаются только частично.

  • autofocus . Фокус ввода будет по умолчанию устанавливаться на том элементе, для которого указан этот атрибут.
  • checked . Установить флажок или радиокнопку по умолчанию.
  • pattern . С помощью этого атрибута можно заставить пользователя ввести данные в определённом формате. Например, ввести только одну цифру от 0 до 9 или только буквы латинского алфавита (должно быть знакомо). Пока поле не будет заполнено правильно, данные формы не будут переданы на обработку.
  • placeholder . Задаёт текст-подсказку.
  • .
  • value . Значение пункта списка для обработки скриптом.
  • selected . Пункт с этим атрибутом по умолчанию будет выделен, как будто пользователь выбрал именно его.
  • . Контейнер позволяет группировать элементы списка .
  • disabled . Делает группу списка недоступной для выбора (при этом она отображается другим цветом).
  • label . Текст заголовка группы.

Пример формы

Теперь, когда все теги известны, создадим небольшую форму авторизации, данные которой обрабатывает файл script.php , находящийся в папке с HTML-страницей.

Код будет таким.

Форма Логин:

Пароль:

Кто вы?

Запомнить

Разберём некоторые его части.

- создаём форму, обрабатываемую файлом script.php. Данные передаются методом GET.

< br > - тег перехода на следующую строку.

< input name =" login " type =" text " size ="25" maxlength ="30" value ="Михаил"> - создаём текстовое поле с именем login шириной в 25 символов. В качестве значения по умолчанию указываем Михаил, чтобы пользователю было понятно, что и как вводить.

< input name =" pass " type =" password " size ="25" maxlength ="30" value =""> - создаём поле ввода пароля (символы замещаются звёздочками). Ширина поля - 25, максимальная длина пароля - 30 символов.

< select >< option value =" c 1">Гостьoption >< option value =" c 2">Администраторoption >select > - создаём простой раскрывающийся список из двух пунктов.

< input name =" save " type =" checkbox " value =" yes "> Запомнить - добавляем флажок и пишем поясняющий текст.

< br >< input type =" submit " name =" enter " value ="Вход"> - создаём кнопку, нажатие которой запускает процесс обработки данных.

- закрываем форму.

В браузере веб-форма будет выглядеть, как на рисунке ниже.

Её можно заполнять, но чтобы она начала работать, необходимо написать код и сохранить его в файле script.php рядом с HTML-страницей.

HTML формы — сложные элементы интерфейса. Они включают в себя разные функциональные элементы: поля ввода и

Результат:

  • Ширина элемента зависит от атрибута cols , который указывает сколько символов помещается по горизонтали
  • Атрибут rows определяет количество строк в элементе

Другие элементы

Дополнительные элементы и атрибуты

  • Для элементов управления radio и checkbox удобно использовать дополнительные элементы, которые, во-первых, делают привязку текста к самому элементу radio или checkbox, во-вторых, добавляют обводку при клике:
  • <input type = "checkbox" id = "book1" > <label for = "book1" > ASP</ label >

    В примере создана надпись (тег label) для элемента checkbox . Привязка осуществляется через атрибут id , значение которого указано в атрибуте for надписи.

    Результат:

  • Атрибут disabled позволяет блокировать элемент, делая его недоступным для изменения пользователем:
  • <input type = "text" name = "login" size = "20" value = "Логин" maxlength = "25" disabled = "disabled" >
    <input type = "checkbox" name = "asp" value = "yes" > ASP<br > <input type = "checkbox" name = "js" value = "yes" checked = "checked" disabled = "disabled" > javascript<br >


    ASP
    javascript