Не бывает единого шаблона формы — под каждую задачу нужно составлять что-то своё. Например, форма для отправки сообщений будет отличаться от формы для ввода данных банковской карточки. А ещё важен макет — где-то дизайнер задумал добавить одно текстовое поле с кнопкой, а где-то десяток переключателей. Поэтому мы сначала покажем общий шаблон формы, а затем разберём, из каких тегов он состоит — так вы сможете изменить наш пример под свои цели.
Шаблон HTML-формы
Из чего состоит форма
и
— контейнер формы, в нём содержатся все поля и кнопка для отправки данных. Тегу добавляется два атрибута: action и post . В первом указывается URL-адрес, на который будет отправлена форма, а второй задаёт метод отправки:
- post — посылает данные в теле HTTP-запроса. Его используют, когда нужно отправить много данных и ссылка на результат их обработки не нужна. Например, при редактировании личного профиля.
- get — метод по умолчанию. Он посылает данные формы в строке запроса, то есть они видны в адресной строке браузера. Метод применяется, например, в поисковых формах.
Тег группирует поля формы. Он часто используется с — тегом, который задаёт подписи для каждой группы. Мы использовали этот тег, чтобы разделить поля формы на три части: «Персональная информация», «Контакты» и «Обратная связь».
Как протестировать какое-то поле
При помощи атрибута for со значением, аналогичным id элемента:
Элемент заключается между открывающим и закрывающим тегами :
Соглашаюсь на обработку персональных данных
Создаёт раскрывающийся список:
Уровень образования Среднее общее Среднее профессиональное Высшее Неоконченное высшее
Для добавления элементов списка используется тег .
Атрибуты тега :
- autocomplete — включено ли автозаполнение поля;
- disabled — в списке нельзя ничего выбрать;
- form — связывает с формой, если он не вложен в тег ;
- multiple — создаёт «мультиселект», то есть список, в котором можно выбрать несколько значений;
- name — имя элемента, используется для отправки формы;
- required — один из пунктов обязательно должен быть выбран;
- size — размер элемента.
Добавляет поле для ввода сообщения — пользователь может оставить в нём вопрос, комментарий для техподдержки или что-то ещё.
Увлечения
У есть особенность: пользователи могут прямо в браузере растягивать текстовое поле по ширине и высоте, ломая вёрстку и нарушая замыслы дизайнера. Чтобы заблокировать такое поведение, используйте CSS-свойство resize: none .
Основные атрибуты textarea:
- name — имя поля;
- id — связывает поле с ;
- maxlength и minlength — задают максимальную или минимальную длину текста;
- required — указывает, что поле обязательно для заполнения;
- placeholder — выводит короткую подсказку для пользователей — что нужно вводить;
- disabled — блокирует поле ввода;
- readonly — делает поле доступным только для чтения, ввод запрещён.
Создаёт интерактивные элементы для получения данных от пользователя. С его помощью можно добавить поля для ввода имени, номера телефона, почты, логина и пароля. Даже чекбоксы и радиокнопки реализуются с помощью этого тега.
Безопасность Вконтакте / Функция подтверждения входа в Вк
E-mail:*
Чтобы пользователи вводили данные в правильном формате, тегу нужно задавать атрибут type с подходящим значением:
- text — можно вводить только текст;
- number — ввод только цифр;
- tel — для телефонных номеров;
- email — ввод электронной почты;
- submit — инпут превращается в кнопку для отправки данных на сервер;
- password — поле для ввода паролей;
- date — для ввода даты;
- checkbox — инпут превращается в чекбокс;
- radio — создаёт радиокнопки.
У атрибута более 20 значений, полный список — на сайте MDN.
Основные атрибуты тега :
- id — связывает input с ;
- name — имя поля;
- maxlength или minlength — максимальная или минимальная длина текста;
- max или min — максимальное или минимальное значение числа и даты;
- required — поле обязательно для заполнения;
- placeholder — в поле ввода отображается подсказка — что нужно вводить;
- disabled — блокирует input ;
- autocomplete — автозаполнение;
- checked — для чекбоксов и радиокнопок, делает поле выбранным;
- pattern — задаёт паттерн для ввода данных, часто используется в типах tel и email ;
- value — значение элемента;
- enctype — указывает, в каком виде пересылать данные на сервер.
Создаёт кнопку для отправки формы:
Отправить
В старых проектах всё ещё встречаются кнопки, сделанные с помощью . Но у такого способа есть ограничения — например, в можно добавить изображение или псевдоэлемент, а в нет.
Что выбрать
— если нужно поле для ввода сообщения.
— для раскрывающихся списков.
— когда нужны чекбоксы, радиокнопки, поля для загрузки файлов и ввода данных.
— для кнопки отправки формы.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Источник: htmlacademy.ru
Почему в ВК и Facebook строка ввода сообщений реализована не через input?
Решил я как то посмотреть как реализована разметка в разных мессенджах и наткнулся на такую вот вещь, текстовое поле в ВК и facebook не используют input скажите с чем это связано?
- Вопрос задан более двух лет назад
- 206 просмотров
1 комментарий
Простой 1 комментарий
не смотрел, но наверно там кроме ввода текста, еще загрузка файлов, показ иконок.
Решения вопроса 1
начинал с бейсика на УКНЦ в 1988
имхо для ввода эмодзи и прочего расширенного форматирования.
Посмотрите как устроен любой визивиг редактор для html.
А так как данные отсылаются через ajax, то связанный input или textarea не нужны.
Почему тут выбрали span вместо div я не знаю. Может для дивов на css уже накручено было много и в этом месте span легче разверстывался.
Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 1
Стилизовать проще?
Чтобы боты не спамили низкоуровневые?
Ответ овер много
Ответ написан более двух лет назад
Ну на счет стилизации убираем стили у input оборачиваем в div и растягиваем по всей ширине, не совсем до конца понимаю, что такое низкоуровневые боты.
Но сделать эмуляцию ввода текста через какой нить nightmare труда не составит.
Просто я лично не где не видел таких рекомендации :/, что нужно делать кастомный input средствами JS
Kotaro Hiba, есть ещё contenteditable, что позволяет делать любой элемент «полем для ввода». Применяется, когда текст не должен быть редактируемым по умолчанию, то есть инпуты не подходят изначально.
Дело здесь вовсе не в рекомендациях, а в требованиях предъявляемых к функционалу.
Можете открыть Яндекс почту или Гмэйл и удивиться ещё раз.
Kotaro Hiba, Ты хотел подискутировать или вопрос задал?
Низкоуровневые боты спамщики — просто не видят этого окна ввода — так как целятся на инпуты.
Пашенька, Да любой сайт лучше чем очередная лавочка на битриксе.
И там одни удивления будут.
Сам до сих пор поражаюсь
Источник: qna.habr.com
HTML Формы
Формы предназначены для пересылки данных от пользователя к веб-серверу. Формы в HTML могут состоять из текстовых полей и текстовых областей, флажков и переключателей, а также раскрывающихся списков. Все это — элементы формы. Каждый элемент служит для того, чтобы передать какое-либо значение сайту.
По своей сути HTML-форма — это веб-страница на которой вы видите области для ввода своей информации. После того, как вы заполните форму и нажмете кнопку отправить, информация из формы упаковывается и отсылается веб-серверу для обработки серверным сценарием (файлом-обработчиком). После обработки к вам возвращается в качестве ответа другая веб-страница. Следующий рисунок наглядно демонстрирует как работает форма:
Нет ничего сложного в создании HTML-форм. Самый простой способ получить представление о формах — это разобрать небольшой HTML-код, а затем посмотреть, как он работает. В следующем примере показан синтаксис создания простой HTML-формы:
Пример: Простая HTML-форма
Моя первая форма:
Имя:
Фамилия:
Простая форма
Моя первая форма:
Имя:
Фамилия:
Элемент
Формы вставляются на веб-страницы посредством элемента . Он представляет собой контейнер для всего содержимого формы, включая такие элементы, как текстовые поля и кнопки, а также любые другие теги языка HTML. Однако он не может содержать в себе другой элемент .
Для отправки формы на сервер используется кнопка «Submit», того же результат получится, если нажать клавишу «Enter» в пределах формы. Если кнопка «Submit» отсутствует в форме, клавиша «Enter» может быть использована для отправки.
Большинство атрибутов элемента влияют на обработку формы, а не на ее дизайн. Наиболее распространёнными из которых являются action и method. Атрибут action содержит URL, на который информация в форме будет отправлена для обработки сервером. Атрибут method является методом HTTP, который должны использовать браузеры для отправки данных формы.
Элемент
Практически все поля для формы создается с помощью элемента (от англ. input — ввод). Внешний вид элемента меняются в зависимости от значения его атрибута type:
Вот некоторые значения атрибута type:
text | ввод одной строки текста |
radio | элемент-переключатель (иногда их называют радио-кнопками) |
password | текстовое поле для ввода пароля, в котором все вводимые символы заменяются звездочкой |
checkbox | поле для установки флажка, который можно установить или сбросить |
submit | кнопка, при нажатии которой происходит отправка данных, введенных в форму |
reset | кнопка, при нажатии которой вся форма очищается. Точнее сказать, все элементы формы получают значения по умолчанию |
button | обычная командная кнопка |
Ввод текста и пароля
Одним из самых простых типов элементов формы является текстовое поле, предназначенное для ввода текста из одной строки. Данный тип ввода текста установлен по умолчанию, а следовательно, именно однострочное поле отобразится, если вы забудете указать атрибут type. Для добавления однострочного поля ввода текста в форму следует внутри элемента прописать атрибут type со значением text :
Поле ввода пароля является разновидностью обычного текстового поля. Оно поддерживает те же атрибуты, что и однострочное текстовое поле. Атрибут name устанавливает имя поля ввода пароля, которое будет отправлено на сервер вместе с паролем, введенным пользователем. Чтобы создать поле для ввода пароля, необходимо задать значение password атрибуту type (password (англ.) — пароль):
Пример создания формы с полем для ввода пароля:
Пример: Поле ввода пароля
Ваш логин:
Пароль:
Вместе с этим атрибутом можно использовать атрибут maxlenght, значение которого определяет максимальное количество символов, которые можно ввести в данную строку. Можно также задать длину поля ввода, используя атрибут size. По умолчанию, в большинстве браузеров ширина текстового поля ограничена 20 символами. Для управления шириной элементов новых форм, вместо атрибута size, рекомендуется использовать средства каскадных таблиц стилей (CSS).
Атрибут value задает значение, которое по умолчанию отображается в текстовом поле в момент загрузки формы. Введя в поле значение по умолчанию, можно пояснить пользователю, какие именно данные и в каком формате вы хотите, чтобы пользователь сюда занес. Это как образец, ведь пользователю гораздо удобнее заполнять форму, видя перед собой пример.
Переключатели (radio)
Элемент типа radio создает переключатели, которые используют принцип логического «ИЛИ», позволяя выбрать только одно из нескольких значений: если вы выбираете одно положение, то все остальные становятся неактивными. Основной синтаксис элемента-переключателя:
Атрибут name для переключателей обязателен и играет важную роль в объединении нескольких элементов-переключателей в группу. Для объединения переключателей в группу необходимо установить одинаковое значение атрибута name и разное значение атрибута value. Атрибут vаluе устанавливает значение выбранного переключателя, которое будет отправлено серверу. Значение каждого элемента-переключателя должно быть уникальным внутри группы, для того, чтобы сервер знал, какой вариант ответа выбрал пользователь.
Наличие атрибута checked (с англ. — установлен) у элемента-переключателя указывает на то, какой из предлагаемых вариантов должен быть выбран по умолчанию при загрузке страницы, если это необходимо. Данный атрибут может быть установлен только у одного элемента-переключателя из группы:
Пример: Использование переключателей
Сколько Вам лет?
- младше 18
- от 18 до 24
- от 25 до 35
- более 35
Флажки (checkbox)
Элемент типа checkbox создает флажки, которые напоминают переключатели тем, что дают пользователю возможность выбирать из предложенных вами вариантов. Главным отличием от переключателей является то, что посетитель может выбрать сразу несколько вариантов, а сами флажки обозначаются квадратиками, а не кружочками. Как и в случае с переключателями, группа флажков создается путем назначения каждому пункту одного и того же значения атрибута name, однако каждый флажок имеет собственное значение. Основной синтаксис флажка:
Атрибут checked, как и в случае с переключателями, указывает, что данный флажок должен быть установлен по умолчанию при загрузке страницы. Данный атрибут может быть установлен одновременно для нескольких флажков группы.
В следующем примере использование флажков заданы несколько выбранных по умолчанию вариантов ответа:
Пример: Использование переключателей
Какие музыкальные жанры Вы любите?
Кнопки подтверждения (submit) и очистки (reset)
Элемент типа submit создает кнопку, при нажатии которой происходит отправка браузером серверному сценарию на обработку данных, введенных пользователем в форму. Если создаем кнопку, очищающую форму, то присваиваем атрибуту type значение «reset» . Элементу типа submit может быть присвоен необязательный атрибут name. Атрибут vаluе используется в данном элементе для указания текста, обозначающего надпись на кнопке. По умолчанию в браузерах на кнопке пишется «Отправить» (Submit), если вас данная надпись не устраивает — введите ее самостоятельно. Поскольку в разных браузерах стили кнопок подтверждения могут отличаться, поэтому лучше самостоятельно настроить стиль кнопки, воспользовавшись средствами CSS либо использовать графические кнопки.
Создание кнопок подтверждения и очистки:
Пример: Использование submit и reset
Подпишись на рассылку новостей:
После щелчка на кнопке Reset происходит сброс любых введенных пользователем данных.
Подпишись на рассылку новостей:
Атрибут action.
Главным для элемента является атрибут action, который указывает обработчик данных для формы. Обработчик данных — это файл, описывающий, что нужно делать с данными формы. В качестве результата этой обработки выдается новая HTML-страница, которая возвращается браузеру. Другими словами в атрибуте action указывается URL-путь к файлу-обработчику на сервере (иногда называемого страницей сценария) для обработки формы. Синтаксис следующий:
Файл обработки находится на сервере mytestserver.com в папке namefolder и название серверного сценария, который будет обрабатывать данные — obrabotchik.php. Именно ему и будут переданы все данные, введенные вами в форму на веб-странице. Расширение .php указывает на то, что указанная форма обрабатывается сценарием написанном на языке PHР. Сам обработчик может быть написан на другом языке, например это может быть язык сценариев Python, Ruby и др.
Желательно всегда задавать значение атрибута action. Если форма должна передать значения на ту же страницу, где она расположена в качестве значения атрибута action укажите пустую строку: action=»».
Атрибут method
Атрибут method задает то, каким образом информация должна быть передана на сервер. Выбор метода отправки формы зависит от данных, которые необходимо отправить вместе с ней. Здесь основную роль играет объем этих данных. Наиболее популярными являются два метода передачи исходных данных вашей формы из браузера на сервер: GET и POST.
Метод устанавливается любой на выбор, и если вы его не указали, по умолчанию будет использоваться GET. Рассмотрим применение каждого из них.
Метод POST
Метод POST упаковывает данные формы и отсылает их серверу незаметно для пользователя, поскольку данные содержатся в теле сообщения. Веб-браузер, при использовании метода POST отправляет на сервер запрос, состоящий из специальных заголовков за которыми следуют данные формы. Так как содержимое этого запроса доступно только серверу, метод POST применяется для передачи конфиденциальных данных, таких как пароли, реквизиты банковских карт и другая персональная информация пользователей. Метод POST также подходит для отправки больших объемов информации, так как в отличие от метода GET, у него нет ограничений по количеству передаваемых символов.
Метод GET
Как вы уже знаете основная работа браузера — это получать веб-страницы от сервера. Так вот, когда вы используете метод GET, ваш браузер просто получает веб-страницу, как делает это всегда. Метод GET также упаковывает данные формы, но, прежде чем отправить запрос серверу, присоединяет их в конец URL-адреса. Чтобы понять, как работает метод GET, давайте посмотрим его в действии. Откройте в блокноте (например Notepad++) первый пример из этого урока (Пример: Простая HTML-форма) и внесите в HTML-код небольшое изменение:
т.е. замените POST на GET.
Сохраните файл под именем file_name.html и обновите страницу браузера (F5), затем заполните форму, например Вася Пупкин, и нажмите кнопку «Отправить». В адресной строке браузера Вы увидите что-то типа этого:
. file_name.html?firstname=Вася).
Этот метод нужно использовать, если вы не передаете больших объемов информации.
Этот метод не подойдет, если данные в вашей форме являются конфиденциальными, например хранят номер банковской карты или пароль.
Кроме того, метод GET непригоден, если вместе с формой вы хотите переслать на сервер файлы.
Группировка элементов формы
Элементы формы, связанные по смыслу, можно сгруппировать между тегами и . Браузер отобразит в виде рамки вокруг группы элементов формы. Внешний вид рамки может быть изменен с помощью каскадных таблиц стилей (CSS).
Чтобы добавить заголовок для каждой группы, понадобится элемент , который задает встраиваемый в рамку текст заголовка группы:
Пример: Использование тега
Контактная информация Email:
Мобильный:
Факс:
Контактная информация Email:
Мобильный:
Факс:
Источник: www.wm-school.ru