1.15. HTML5-формы

html5-formaHTML-формы являются элементами управления, которые применяются для сбора информации от посетителей веб-сайта.

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

Для получения и обработки данных форм используются языки веб-программирования, такие как PHP, Perl.

До появления HTML5 веб-формы представляли собой набор нескольких элементов <input type="text">, <input type="password">, завершающихся кнопкой <input type="submit">. Для стилизации форм в разных браузерах приходилось прилагать немало усилий. Кроме того, формы требовали применения JavaScript для проверки введенных данных, а также были лишены специфических типов полей ввода для указания повседневной информации типа дат, адресов электронной почты и URL-адресов.

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

html5_form
Рис. 1. Улучшенные веб-формы с помощью HTML5

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

1. Элемент <form>

Основу любой формы составляет элемент <form>...</form>. Он не предусматривает ввод данных, так как является контейнером, удерживая вместе все элементы управления формы – поля. Атрибуты этого элемента содержат информацию, общую для всех полей формы, поэтому в одну форму нужно включать поля, объединенные логически.

Таблица 1. Атрибуты тега <form>
Атрибут Значение / описание
accept-charset Значение атрибута представляет собой разделенный пробелами список кодировок символов, которые будут использоваться для отправки формы, например, <form accept-charset="ISO-8859-1">.
action Обязательный атрибут, который указывает url обработчика формы на сервере, которому передаются данные. Представляет из себя файл (например, action.php), в котором описано, что нужно делать с данными формы. Если значение атрибута не будет указано, то после перезагрузки страницы элементы формы примут значения по умолчанию.
В случае, если вся работа будет выполняться на стороне клиента сценариями JavaScript, то для атрибута action можно указать значение #.
Также можно сделать так, чтобы заполненная посетителем форма приходила вам на почту. Для этого нужно внести следующую запись:
<form action="mailto:адрес вашей электронной почты" enctype="text/plain"></form>
autocomplete Отвечает за запоминание введенных в текстовое поле значений и автоподстановку их при последующем вводе:
on — означает, что поле не защищено, и его значение можно сохранять и извлекать,
off — отключает автозаполнение для полей форм.
enctype Используется для указания MIME-типа данных, отправляемых вместе с формой, например, enctype="multipart/form-data". Указывается только в случае method="post".
application/x-www-form-urlencoded — тип содержимого по умолчанию, указывает на то, что передаваемые данные представляют список URL-кодированных переменных формы. Символы пробела (ASCII 32) будут закодированы как +, а специальный символ, например, такой как ! будет закодирован шестнадцатиричной форме как %21.
multipart/form-data — используется для отправки форм, содержащих файлы, не-ASCII данные и бинарные данные, состоит из нескольких частей, каждая из которых представляет содержимое отдельного элемента формы.
text/plain — указывает на то, что передается обычный (не html) текст.
method Задает способ передачи данных формы.
Метод get передает данные на сервер через адресную строку браузера. При формировании запроса к серверу все переменные и их значения формируют последовательность вида www.anysite.ru/form.php?var1=1&var2=2. Имена и значения переменных присоединяются к адресу сервера после знака ? и разделяются между собой знаком &. Все специальные символы и буквы, отличные от латинских, кодируются в формате %nn, пробел заменяется на +. Этот метод нужно использовать, если вы не передаете больших объемов информации. Если вместе с формой предполагается отправка какого-либо файла, этот метод не подойдет.
Метод post применяется для пересылки данных больших объемов, а также конфиденциальной информации и паролей. Данные, отправляемые с помощью этого метода, не видны в заголовке URL, так как они содержатся в теле сообщения.
<form action="action.php" enctype="multipart/form-data" method="post"></form>
name Задает имя формы, которое будет использоваться для доступа к элементам формы через сценарии, например, name="opros".
novalidate Отключает проверку в кнопке для отправки формы. Атрибут используется без указания значения
target Указывает окно, в которое будет направлена информация:
_blank — новое окно
_self — тот же фрейм
_parent — родительский фрейм (если он существует, если нет — то в текущий)
_top — окно верхнего уровня по отношению к данному фрейму. Если вызов происходит не из дочернего фрейма, то в тот же фрейм.

2. Группировка элементов формы

Элемент <fieldset>...</fieldset> предназначен для группировки элементов, связанных друг с другом, разделяя таким образом форму на логические фрагменты.

Каждой группе элементов можно присвоить название с помощью элемента <legend>, который идет сразу за тегом <fieldset>. Название группы проявляется слева в верхней границе <fieldset>. Например, если в элементе <fieldset> хранится контактная информация:

<form>
  <fieldset>
    <legend>Контактная информация</legend>
    <p><label for="name">Имя <em>*</em></label><input type="text" id="name"></p>
    <p><label for="email">E-mail</label><input type="email" id="email"></p>
  </fieldset>
<p><input type="submit" value="Отправить"></p>
</form>
fieldset
Рис. 2. Группировка элементов формы с помощью <fieldset>
Таблица 2. Атрибуты тега <fieldset>
Атрибут Значение / описание
disabled Если атрибут присутствует, то группа связанных элементов формы, находящихся внутри контейнера <fieldset>, отключены для заполнения и редактирования. Используется для ограничения доступа к некоторым полям формы, содержащих ранее введенные данные. Атрибут используется без указания значения — <fieldset disabled>.
form Значение атрибута должно быть равно атрибуту id элемента <form> в этом же документе. Указывает на одну или несколько форм, к которым принадлежит данная группа элементов. На данный момент атрибут не поддерживается ни одним браузером.
name Определяет имя, которое будет использоваться для ссылки на элементы в JavaScript, или для ссылки на данные формы после заполнения и отправки формы. Является аналогом атрибута id.

3. Создание полей формы

Элемент <input> создает большинство полей формы. Атрибуты элемента отличаются в зависимости от типа поля, для создания которого используется этот элемент.

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

Таблица 3. Атрибуты тега <input>
Атрибут Значение / описание
accept Определяет тип файла, разрешенных для отправки на сервер. Указывается только для <input type="file">. Возможные значения:
file_extension — разрешает загрузку файлов с указанным расширением, например, accept=".gif", accept=".pdf", accept=".doc"
audio/* — разрешает загрузку аудиофайлов
video/* — разрешает загрузку видеофайлов
image/* — разрешает загрузку изображений
media_type — указывает на медиа-тип загружаемых файлов.
alt Определяет альтернативный текст для изображений, указывается только для <input type="image">.
autocomplete Отвечает за запоминание введенных в текстовое поле значений и автоподстановку их при последующем вводе:
on — означает, что поле не защищено, и его значение можно сохранять и извлекать,
off — отключает автозаполнение для полей форм.
autofocus Позволяет сделать так, чтобы в загружаемой форме то или иное поле ввода уже имело фокус (было выбрано), являясь готовым к вводу значения.
checked Атрибут проверяет, установлен ли флажок по умолчанию при загрузке страницы для полей типа type="checkbox" и type="radio".
disabled Отключает возможность редактирования и копирования содержимого поля.
form Значение атрибута должно быть равно атрибуту id элемента <form> в этом же документе. Определяет одну или несколько форм, которым принадлежит данное поле формы.
formaction Задает url файла, который будет обрабатывать введенные в поля данные при отправке формы. Задается только для полей типа type="submit" и type="image". Атрибут переопределяет значение атрибута action самой формы.
formenctype Определяет, как будут кодироваться данные полей формы при отправке на сервер. Переопределяет значение атрибута enctype формы. Задается только для полей типа type="submit" и type="image". Варианты:
application/­x-www-form-urlencoded — значение по умолчанию. Все символы кодируются перед отправкой (пробелы заменяются на символ +, специальные символы преобразуются в значения ASCII HEX)
multipart/form-data — символы не кодируются
text/plain — пробелы заменяются на символ +, а специальные символы не кодируются.
formmethod Атрибут определяет метод, который браузер будет использовать для отправки данных формы на сервер. Задается только для полей типа type="submit" и type="image". Переопределяет значение атрибута method формы. Варианты:
get — значение по умолчанию. Данные из формы (пара имя/значение) добавляются в url-адрес и отправляются на сервер: URL?имя=значение&имя=значение
post — данные формы отправляются в виде http-запроса.
formnovalidate Определяет, что данные полей формы не должны проверяться при отправке формы. Переопределяет значение атрибута novalidate формы. Можно использовать без указания значения атрибута.
formtarget Определяет, где выводить ответ, полученный после отправки формы. Задается только для полей типа type="submit" и type="image". Переопределяет значение атрибута target формы.
_blank — загружает ответ в новое окно/вкладку
_self — загружает ответ в то же окно (значение по умолчанию)
_parent – загружает ответ в родительский фрейм
_top – загружает ответ во весь экран
framename – загружает ответ во фрейм с указанным именем.
height Значение атрибута содержит количество пикселей без указания единицы измерения. Устанавливает высоту поля формы типа type="image", например, <input type="image" src="img_submit.gif" height="50">. Рекомендуется одновременно устанавливать как высоту, так и ширину поля.
list Является ссылкой на элемент <datalist>, содержит его id.Позволяет предоставить пользователю несколько вариантов на выбор, когда он начинает вводить значение в соответствующем поле.
max Позволяет ограничить допустимый ввод числовых данных максимальным значением, значение атрибута может содержать целое или дробное число. Рекомендуется использовать этот атрибут вместе с атрибутом min. Работает со следующими типами полей: number, range, date, datetime, datetime-local, month, time и week.
maxlength Атрибут задает максимальное количество символов, вводимых в поле. Значение по умолчанию 524288 символов.
min Позволяет ограничить допустимый ввод числовых данных минимальным значением.
multiple Позволяет пользователю ввести несколько значений атрибутов, разделяя их запятой. Применяется в отношении файлов и адресов электронной почты. Указывается без значения атрибута.
name Определяет имя, которое будет использоваться для доступа к элементу <form>, к примеру, в таблицах стилей css. Является аналогом атрибута id.
pattern Позволяет определять с помощью регулярного выражения синтаксис данных, ввод которых должен быть разрешен в определенном поле. Например, pattern="[a-z]{3}-[0-9]{3}" — квадратные скобки устанавливают диапазон допустимых символов, в данном случае — любые строчные буквы, число в фигурных скобках указывает, что нужны три строчные буквы, после которых следует тире, далее — три цифры в диапазоне от 0 до 9.
placeholder Содержит текст, который отображается в поле ввода до заполнения (чаще всего это подсказка).
readonly Не позволяет пользователю изменять значения элементов формы, выделение и копирование текста при этом доступно. Указывается без значения атрибута.
required Выводит сообщение о том, что данное поле является обязательным для заполнения. Если пользователь попытается отправить форму, не введя в это поле требуемое значение, то на экране отобразится предупреждающее сообщение. Указывается без значения атрибута.
size Задает видимую ширину поля в символах. Значение по умолчанию — 20. Работает со следующими типами полей: text, search, tel, url, email и password.
src Задает url изображения, используемого в качестве кнопки отправки данных формы. Указывается только для поля <input type="image">.
step Используется для элементов, предполагающих ввод числовых значений, указывает величину увеличения или уменьшения значений в процессе регулировки диапазона (шаг).
type button — создает кнопку.
checkbox — превращает поле ввода во флажок, который можно установить или очистить, например,
У меня есть автомобиль
color — генерирует палитры цветов в поддерживающих браузерах, давая пользователям возможность выбирать значения цветов в шестнадцатеричном формате.
date — позволяет вводить дату в формате дд.мм.гггг.
День рождения:
datetime-local — позволяет вводить дату и время, разделенные прописной английской буквой Т по шаблону дд.мм.гггг чч:мм.
День рождения — день и время:
email — браузеры, поддерживающие данный атрибут, будут ожидать, что пользователь введет данные, соответствующие синтаксису адресов электронной почты.
E-mail:
file — позволяет загружать файлы с компьютера пользователя.
Выберите файл:
hidden — скрывает элемент управления, который не отображается браузером и не дает пользователю изменять значения по умолчанию.
image — создает кнопку, позволяя вместо текста на кнопке вставить изображение.
month — позволяет пользователю вводить год и номер месяца по шаблону гггг-мм.
number — предназначено для ввода целочисленных значений. Его атрибуты min, max и step задают верхний, нижний пределы и шаг между значениями соответственно. Эти атрибуты предполагаются у всех элементов, имеющих численные показатели. Их значения по умолчанию зависят от типа элемента.
Укажите количество (от 1 до 5):
password — создает текстовые поля в форме, при этом вводимые пользователем символы заменяются на звездочки, маркеры, либо другие, установленные браузером значки.
Введите пароль:
radio — создает переключатель — элемент управления в виде небольшого кружка, который можно включить или выключить.
Вегетарианец:
range — позволит создать такой элемент интерфейса, как ползунок, min / max — позволят установить диапазон выбора
reset — создает кнопку, которая очищает поля формы от введенных пользователем данных.
search — обозначает поле поиска, по умолчанию поле ввода имеет прямоугольную форму.
Поиск:
submit — создает стандартную кнопку, активизируемую щелчком мыши. Кнопка собирает информацию с формы и отправляет ее для обработки.
text — создает текстовые поля в форме, выводя однострочное текстовое поле для ввода текста.
time — позволяет вводить время в 24-часовом формате по шаблону чч:мм. В поддерживающих браузерах оно отображается как элемент управления в виде числового поля ввода со значением, изменяемым с помощью мыши, и допускает ввод только значений времени.
Укажите время:
url — поле предназначено для указания URL-адресов.
Главная страница:
week — соответствующий инструмент-указатель позволяет пользователю выбрать одну неделю в году, после чего обеспечит ввод данных в формате нн-гггг. В зависимости от года число недель может быть 52 или 53.
Укажите неделю:
value Определяет текст, отображаемый на кнопке, в поле или связанный текст. Не указывается для полей типа file.
width Значение атрибута содержит количество пикселей. Позволяет задать ширину полей формы.

4. Текстовые поля ввода

Элемент <textarea>...</textarea> используется вместо элемента <input type="text">, когда нужно создать большие текстовые поля. Текст, отображаемый как исходное значение, помещается внутрь тега. Размеры поля устанавливаются при помощи атрибутов cols – размеры по горизонтали, rows – размеры по вертикали. Высоту поля можно задать свойством height. Все размеры считаются исходя из размера одного символа моноширинного шрифта.

Таблица 4. Атрибуты тега <textarea>
Атрибут Значение / описание
autofocus Устанавливает фокус на нужном начальном текстовом поле автоматически.
cols Устанавливает ширину через количество символов. Если пользователь вводит больше текста, появляется полоса прокрутки.
disabled Отключает возможность редактирования и копирования содержимого поля.
form Значение атрибута должно быть равно значению атрибута id элемента <form> в этом же документе. Определяет одну или несколько форм, которым принадлежит данное текстовое поле.
maxlength Значение атрибута задает максимальное число символов для ввода в поле.
name Задает имя текстового поля.
placeholder Определяет короткую текстовую подсказку, которая описывает ожидаемое вводимое значение.
readonly Отключает возможность редактирования содержимого поля.
required Выводит сообщение о том, что данное поле является обязательным для заполнения.
rows Указывает число, которое означает, сколько строк должно отображаться в текстовой области.
wrap Определяет, должен ли текст сохранять переносы строк при отправке формы. Значение hard сохраняет перенос, а значение soft не сохраняет. Если используется значение hard, то должно указываться значение атрибута cols.

5. Раскрывающийся список

Списки дают возможность расположить большое количество пунктов компактно. Раскрывающиеся списки создаются при помощи элемента <select>...</select>. Они позволяют выбрать одно или несколько значений из предложенного множества. По умолчанию в поле списка отображается его первый элемент.

Для добавления в список пунктов используются элементы <option>...</option>, которые располагаются внутри <select>.

Для систематизации списков применяется элемент <optgroup>...</optgroup>, который создает заголовки в списках.

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

Таблица 5. Атрибуты тега <select>
Атрибут Значение / описание
autofocus Устанавливает автоматический фокус на элементе при загрузке страницы.
disabled Отключает раскрывающийся список.
form Определяет форму, которой принадлежит данный список. В качестве значения атрибута указывается идентификатор формы.
multiple Дает возможность выбора одного или нескольких пунктов, для этого при выборе нужно нажать и удерживать нажатой клавишу Ctrl.
name Определяет имя для выпадающего списка. Значение атрибута содержит название, отражающее тематику списка.
required Выводит сообщение о том, что пользователь должен выбрать значение из раскрывающегося списка перед отправкой формы.
size Задает количество одновременно видимых на экране элементов списка. Если количество элементов списка превышает установленное количество, появляется полоса прокрутки. Значение атрибута задается целым положительным числом.
Таблица 6. Атрибуты тега <option>
Атрибут Значение / описание
disabled Делает недоступным для выбора элемент списка.
label Задает укороченную версию для элемента, которая будет отражаться в выпадающем списке. Значение атрибута содержит текст, описывающий соответствующий пункт выпадающего списка.
selected Отображает выбранный элемент списка по умолчанию при загрузке страницы браузером.
value Указывает значение, которое будет отправлено на сервер при отправке формы.
Таблица 7. Атрибуты тега <optgroup>
Атрибут Значение / описание
disabled Отключает данную группу элементов списка для выбора.
label Задает заголовок для группы элементов выпадающего списка. Значение атрибута содержит текст, недоступный для выбора, который будет располагаться над соответствующими пунктами списка. Текст выделяется в браузере жирным начертанием.

6. Надписи к полям формы

Надписи к элементам формы создаются с помощью элемента <label>...</label>. Существует два способа группировки надписи и поля. Если поле находится внутри элемента <label>, то атрибут for указывать не нужно.

<!-- с указанием атрибута for -->
<label for="comments">Когда вы последний раз летали на самолете?</label>
<textarea id="comments"></textarea>

<!-- без атрибута for -->
<p><label>Кошка<input id="cat" type="checkbox"></label></p>
Таблица 8. Атрибуты тега <label>
Атрибут Значение / описание
for Определяет, к какому полю формы привязан данный элемент. Можно создавать поясняющие надписи к следующим элементам формы: <input>, <textarea>, <select>. Значение атрибута содержит идентификатор поля формы.

7. Кнопки

Элемент <button>...</button> создает кликабельные кнопки. В отличие от кнопок, созданных <input> (<input type="submit"></input>, <input type="image">, <input type="reset">, <input type="button">), внутрь элемента <button> можно поместить контент — текст или изображение.

Для корректного отображения элемента <button> разными браузерами нужно указывать атрибут type, например, <button type="submit"></button>.

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

Таблица 9. Атрибуты тега <button>
Атрибут Значение / описание
autofocus Устанавливает фокус на кнопке при загрузке страницы.
disabled Отключает кнопку, делая ее некликабельной.
form Указывает на одну или несколько форм, которым принадлежит данная кнопка. Значение атрибута — идентификатор соответствующей формы.
formaction Значение атрибута содержит url-адрес обработчика данных формы, отправляемых при нажатии на кнопку. Только для кнопки типа type="submit". Переопределяет значение атрибута action, указанного для элемента <form>.
formenctype Задает тип кодировки данных формы перед отправкой на сервер при нажатии на кнопки типа type="submit". Переопределяет значение атрибута enctype, указанного для элемента <form>. Возможные значения:
application/x-www-form-urlencoded — значение по умолчанию. Все символы перед отправкой будут закодированы.
multipart/form-data — символы не кодируются. Используется в случае, когда с помощью формы загружаются файлы.
text/plain — символы не кодируются, а пробелы заменяются на символ +.
formmethod Атрибут определяет метод, который браузер будет использовать для отправки формы. Переопределяет значение атрибута method, указанного для элемента <form>. Указывается только для кнопок типа type="submit". Возможные значения:
get — данные из формы (пара имя/значение) добавляются в url-адрес и отправляются на сервер. Данный способ имеет ограничения по размеру отправляемых данных и не подходит для отправки паролей и конфиденциальной информации.
post — данные из формы добавляются в виде http-запроса. Метод является более надежным и безопасным, чем get и не имеет ограничений по размеру.
formnovalidate Атрибут задает, что данные формы не должны проверяться при отправке. Указывается только для кнопок типа type="submit".
formtarget Атрибут задает, в каком окне выводить результат после отправки формы. Указывается только для кнопок типа type="submit". Переопределяет значение атрибута target, указанного для элемента <form>.
_blank — загружает ответ в новое окно/вкладку
_self — загружает ответ в то же окно (значение по умолчанию)
_parent — загружает ответ в родительский фрейм
_top — загружает ответ во весь экран
framename — загружает ответ во фрейм с указанным именем.
name Задает имя кнопки, значение атрибута — текст. Используется для ссылки на данные формы, после того как форма была отправлена, или для ссылки на данную кнопку (кнопки) в JavaScript.
type Определяет тип кнопки. Возможные значения:
button — кликабельная кнопка
reset — кнопка сброса, возвращает первоначальное значение
submit — кнопка для отправки данных формы.
value Задает значение по умолчанию, отправляемое при нажатии на кнопку.

8. Флажки и переключатели в формах

Флажки в формах задаются с помощью конструкции <input type="checkbox">, а переключатель — при помощи <input type="radio">.

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

Элемент <label> применяется при реализации выбора с помощью переключателей и флажков. Можно выбрать нужный пункт, просто щелкая кнопкой мыши на тексте, связанном с ним. Для этого нужно поместить <input> внутрь элемента <label>.

  • Колотушкин

    Отлично, Елена. Продолжай в том же духе!

  • Зинаида Масько

    Помогите пожалуйста ….

    у меня есть форма но нет файла php где и будет обработка и отправка на почту …

    вот скрипт из файла html

    ФИО (обязательно):

    Email:

    ВКонтакте или Facebook (обязательно):

    Тема сообщения:

    Выберите тему

    Стать Агентом

    Предложения / Жалобы

    Мне нужна техническая помощь

    Сообщение:

    Отправить сообщение

    • Skvor

      http://form.staff-base.com/ — можете указать в action и смотреть как ваша форма выглядит на сервере.
      http://форма.сайта-визитки.рф/ — можете использовать для пересылки ваших форм на e-mail.

    • Чтобы отправка введенных в форму значений происходила на почту, нужно указать <form action=»mailto:адрес вашей электронной почты» >…</form>.
      Поле <input type=»hidden»> используется в следующих случаях:
      1) для защиты данных, введенных пользователем в форму, исключая отсылку данных третьим лицам (CSRF токены)
      2) для сохранения шага при заполнении в многостраничных формах
      3) для отслеживания данных, связанных именно с этой формой. Если один сценарий обрабатывает несколько разных форм, то в скрытом поле каждой формы можно указать идентификатор, который позволит определить, с какой формой вы имеете дело.
      В качестве значения name=»» нужно указать имя формы, value=»» задается значение, которое будет отправлено скрытым полем на сервер.

  • Владислав Анищенко

    Добрый день, немного не об этом, но очень нужна помощь, задача следующая, на сайте есть поле ввода, нужно чтобы пользователь вводил в это поле текст (свой никлейм) нажимал на кнопку, которая переходила бы по адресу, частью адреса и должен являться текст из этого поля, допустим, пользователь вводит в форму слово «User» следовательно при нажатии на кнопку должна открыться страница «site.ru/nickname=User» при введенном «User555» ссылка должна быть «site.ru/nickname=User555» думаю смысл понятен…

    • Владислав, добрый день. Я бы с удовольствием помогла вам, но пока не сильна в php. Попробуйте задать этот вопрос на toster.ru

    • Дмитрий Гриценко

      Здравствуйте! Это можно сделать с помощью JavaScript, если не требуется участия сервера. Если это Вам еще интересно, могу помочь советом как это сделать.

      • Hariec

        С удовольствием бы выслушал.

    • Евгений Корсунов

      Самый простой вариант

  • Dmytro Petrychenko

    Здрасте еще раз! Есть ли возможность реализовать выпадающий список с картинками? Например выбор языка. При этом использовать ТОЛЬКО HTML и CSS?

    • Можно попросить вас перенести этот вопрос на форум и чуть подробнее изложить суть. Посмотрю, что и как можно сделать.

  • Andrey Fits

    Нету атрибута dirname в теге …

  • Александр Метляев

    Здравствуйте Елена.Подскажите пожалуйста.Можно ли сделать так что бы данные при регистрации отправлялись на е-мейл но при этом и хранились на сервере?

    • Здравствуйте, Александр. Можно сделать, но для этого нужны более продвинутые знания PHP и баз данных, чем есть у меня. Я могу помочь только с простым вариантом — как сделать форму, данные полей которой приходят на указанную почту.

      • Александр Метляев

        Просто что бы понятнее было все о чем я хотел донести.И почему задал такой вопрос.Дело в том что мы планируем сайт рефералку.Но нам нужно что бы данные приходили на эл.почту.Как это сделать я прочитал выше 🙂 но ведь для того что бы реф.система срабатывала правильно,нужно что бы данные и на серверах были?Ведь так вроде бы?Я просто тоже не силен в PHP.

        • Давайте уточним ситуацию: вы делаете сайт, на котором хотите разместить форму для регистрации. Данные формы — имя и адрес электронной почты или что-то ещё должны приходить вам на почту? Для этого им не обязательно храниться на сервере. Они будут присланы вам на адрес электронной почты, указанный в файле обработчика формы.
          Тот способ, который вы прочитали в комментариях, не очень удобен, так как пересылка данных в этом случае будет осуществляться с помощью почтовой программы, установленной на компьютере/смартфоне пользователя, например, Microsoft Outlook.

          • Александр Метляев

            Данные форм:
            Имя
            Фамилия
            Сот.Номер
            Город проживания(регион 24)
            е-мейл
            Пароль
            ссылка на страницу в вк.

            Это поля форм при регистрации.
            Рассылать?Ну думаю разве что только когда в разделе «Блог», будет важная новость.Или на случай когда пользователь забывает пароль,присылать ему на почту.

          • Разметка формы (без стилей, вместо placeholder подписи к полям можете добавить через label):

            Зарегистрироваться

            Файл form.php

            Замените текст в action=»полный путь к файлу form.php» на путь к файлу form.php на вашем сервере.
            Вместо «адрес электронной почты» укажите адрес, на который будут приходить данные формы.

          • Александр Метляев

            Спасибо большое Елена.Обязательно попробую так сделать.

          • Пожалуйста. Код рабочий, я так делала форму регистрации для акции на работе.

          • Александр Метляев

            Я позже скину вам код который я написал.Вроде он тоже работает 🙂 сделал все как положенно там скорее всего 🙂

  • Alexander Inkognito

    Здравствуйте, а для чего нужен атрибут for в елементе label? И с ним и без него работает одинаково.

    • Здравствуйте. Не одинаково, атрибут for связывает поясняющую надпись с соответствующим полем формы. Кликнув по тексту, заключённому в тег label, поле формы получает фокус. Попробуйте убрать из
      <label for=»comments»>Когда вы последний раз летали на самолете?</label>
      <textarea id=»comments»></textarea>
      атрибут for=»comments» и снова кликнуть по заголовку поля. Фокус внутри input не появится.

  • alexander poplavsky

    День добрый! Атрибуты width и size тега іnput чем отличаются?

    • Добрый день.
      width устанавливает ширину поля в px.
      size устанавливает количество символов, то есть задаёт такую ширину поля, в которой поместится указанное количество символов, хотя, не совсем очевидно, ширина какого символа принимается за единицу.

  • Дрын Хруев

    В этом примере ошибка? Нужно же в инпуте «ID=» а не «name=» писать.

    Контактная информация
    Имя *
    E-mail

  • Александр Тимощенко

    Добрый день. Вопрос.
    Всё работает, только у меня в форме добавляются файлы. Работает если прикрепляешь 1 файл. А вот кнопка прикрепить ещё файл — не работает. Почему?
    Загрузить файл(ы)
    Тип файла

    — Выберите из списка —
    Доп. материалы
    План

    Выбор файла


    Еще файл

    • Александр Тимощенко

      Я так понимаю это прописано в jqwery
      я могу скинуть файл, посмотреть что не так ?

      • А где у вас сам элемент form? Загрузка файлов на сервер осуществляется с помощью php. Вы можете почитать об этом на профильных сайтах.

  • Александр Тимощенко

    Я замучался. на странице 2 формы. Одинаковые. Одна внизу, другая вверху.
    Я код продублировал, получилось 2 — всё ок. Но. Нету рамки на окошко input. Я убрал border — none. Поставил цвет рамки, толщину. Но её нет. Почему?
    Уже и ИД задал, и что только не делал. Но рамочки в инпуте — нема ((((

    Забронируйте номер прямо сейчас

    Забронировать

    .main-form2{
    background-color: #f2f1f0;
    padding-bottom: 30px;

    }

    .main-form2 input{
    width:80%;
    padding: 10px;
    border-radius: 5px;
    border: 20px;
    color: #4d0219;
    }

    input.eee{
    border: 3px solid blue;
    }

    • У вас ошибка в значении свойства .main-form2 input {border: 20px;} — не указан стиль рамки, например, border: 20px solid;

      • Александр Тимощенко

        Большое спасибо!

        • Пожалуйста! Приятно видеть ваше рвение в изучении веб-технологий))

  • Александр Тимощенко

    border-color — не помогает так же (

  • Dron N

    «Флажков, в отличие от переключателей, в одной форме может быть установлено несколько.»
    Переключателей тоже может быть несколько, они группируются по одинаковому атрибуту name. https://codepen.io/Dron007/pen/eWdyxe

    • Здесь речь о том, что в одной группе флажков можно отметить несколько, а в одной группе радио-кнопок можно отметить только одну.

      • Dron N

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

  • Александр Тимощенко

    Замучался искать статью у вас, как отправить данные с формы на почту??
    Хочу изучить, т.к. подошел уже к этому, а данные не отправляются)

      • Александр Хан

        Елена мне нужен ваш ответ . Скажите а почему у вас в CSS мало свойств по сравнения у Мержевича Влада???

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

          • Александр Хан

            Значит вы и те и те исключили ??? Я правильно вас понял?

          • Скорее не включила. Да, вы правильно поняли. Зачем держать на сайте неактуальную информацию.

          • Александр Хан

            А у вас есть приложение html5book на андроид?

          • Нет.

          • Александр Хан

            Эх жаль . Было бы вообще супер )
            А планируете его создать?

          • Я пробовала, но оно сильно уступает мобильной версии сайта.

  • fromillia .

    Здравствуйте. Сейчас продолжу штурмовать ваш сайт в поисках информации, но параллельно опишу вопрос. Верстаю страницу по макету, дошёл до формы. Изображение формы вырезал из макета и разместил на странице. Создал поля с айдишниками и планирую позиционировать их в нужные места изображения формы. Что скажете об этом методе и что посоветуете, какие шаги нужно будет сделать, чтобы довести его до ума, если метод годный ? Заранее спасибо за развёрнутый ответ.

  • fromillia .

    Здравствуйте. Верстаю по PSD-макету. Дошёл до формы. Делаю так: вырезал изображение формы, разместил его на странице. Создал поля ввода с айдишниками и планирую позиционировать их в нужных местах размещённого изображения формы. Что скажете об этом методе и какие шаги нужно будет сделать, чтобы допилить это дело, если метод годный ? Заранее спасибо за ответ.

    • Здравствуйте. Картинку формы можно увидеть?

      • fromillia .

        https://uploads.disquscdn.com/images/5bd7a2c3e30a00a4cc63fc309707f2f24e2a30de5f2622d28b18b385fef0af66.png

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

        • fromillia .

          Ну вот есть предположение, что сама форма может состоять только из четырёх инпутов, а название вверху и кнопка справа — отдельные элементы (ну может кнопка будет относиться к атрибутам элемента формы ?! ). Всё началось с того, что я не совсем понял, как задавать средствами CSS вот эти неполные бордеры и вот только недавно осенило, что, вероятно, заданные скругления дадут этот эффект укорачивания нижнего бордера. Так что можно поколдовать и без использования изображения. Ход мысли верный ?

          • Нет, ход мыслей неверный. Укороченные бордеры можно сделать с помощью псевдоэлементов, причем для внешнего блока-обертки поля формы , пример здесь https://codepen.io/html5book/pen/prYRKa. Кнопка должна быть внутри формы, вы просто берёте элемент input type=»submit» и задаёте для него стили. Насчёт заголовка пока думаю.

          • fromillia .

            Может заголовок вырезать в фотошопе каким-нибудь лассо ?

          • Как вариант, главное, тень сохранить.

          • Заголовок или вставлять картинкой с текстом или делать с помощью svg (если нужна поддержка в старых браузерах, svg не подойдёт). Трансформация блока с тенью делает зубчатый край https://codepen.io/html5book/pen/QMopwm, поэтому тоже не вариант.

    • Абсолютное позиционирование оправдано использовать в редких случаях, например, для позиционирования каких-либо отдельных элементов в блоке-контейнере с относительным позиционированием. В вашем случае абсолютное позиционирование всех полей формы изымет их из блока-контейнера с формой, и его высота будет равна нулю или высоте внутренних отступов padding (если вы их зададите). А раз высота нулевая, то нижележащие блоки сдвинутся наверх и получится наложение элементов. Жёстко прописывать высоту не вариант, так как придётся писать много лишних стилей для создания адаптивной верстки. Как сделать кнопку, посмотрите в этой статье https://html5book.ru/css3-ten-bloka/#part2.

      • fromillia .

        Спасибо за советы. Этот макет — тестовый. Потенциальный работодатель отметил, что скорее всего я не подойду (нет опыта вёрстки): им нужен фуллстек, как я понял из вакансии, но мне предложили выполнить задание для верстальщика за пару дней ДО того, как они опубликовали объявление. С макетом Не присылали техзадания, скорее всего потому, что не видели во мне полноценного кандидата.