Теперь мы CRM-group!

Имя новое, подход прежний: профессионализм и забота о вас

Перейти

7 приёмов вёрстки, чтобы сделать удобную форму

Как сделать форму ввода, удобную даже для котиков

Чтобы пользователь правильно заполнил форму (и заполнил её вообще), она должна быть не только красивой и понятной, но и правильно свёрстанной.

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

Используем клик по названию поля и чекбоксу

Для названий полей используйте тег label. Так пользователи смогут поставить или убрать галку, кликнув по названию, вместо того, чтобы целиться мышью в миниатюрный чекбокс.

<form>
<label for="ok-cb">Я согласен:</label> 
<input id="ok-cb" name="ok" type="checkbox" value="1" />&nbsp;
</form>

Обратите внимание, чтобы атрибут for в теге label соответствол атрибуту id тега input.

Этот же тег сработает, чтобы курсор перемещался в текстовое поле после клика по названию.

Предлагаем автозаполнение

В браузерах есть автозаполнение форм: если пользователь уже заполнял текстовое поле с атрибутом name на других сайтах, они добавятся автоматически при заполнении поля с таким же именем. Чтобы это сработало, называйте текстовые поля общепринятыми названиями — email, phone, name, address.

<input type="email" name="email" />

Размещаем курсор в первом поле для ввода

Есть страницы, на которых отображается только форма, например, страница входа в аккаунт:

В таких случаях удобно размещать курсор в первое поле ввода. Это можно сделать через функцию focus в JavaScript.

<input type="email" name="email" id="email-input" />
<script>
document.getElementById(‘email-input’).focus();
</script>

Чтобы пользователь мог отправить форму простым нажатием Enter на клавиатуре и не кликал лишний раз мышью, используйте такой код:

<input type="submit" value="OK" /> 

Когда вы открываете эту статью, вас перебрасывает в середину текста, к конкретной форме. Это значит, что она работает:

Добавляем защиту от некорректно введённых данных

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

  • type=»email» — для адреса электронной почты
  • type=»date» — для дат
  • type=»time» — для времени
  • type=»url» — для cсылок
  • type=»number» — для цифр

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

<input type="number" name="number" value="" min="1" max="5" step="0.5" />

Показываем пользователю, в чём ошибка

Чтобы показать пользователю, где именно ошибка и в чём она заключается, используйте атрибут required. Если поле не заполнено или заполнено неверно, при попытке отправить форму выскочит ошибка. Текст ошибки можно задать свой.

<input type="email" name="email" required 
oninvalid="this.setCustomValidity('Пожалуйста, напишите email латинскими буквами')" oninput="setCustomValidity('')" />

Ограничиваем длину поля и заглавные буквы

Если вам нужно ограничить длину поля, используйте атрибут maxlength. Пример — код для поля, в котором нельзя ввести больше четырёх символов:

<input maxlength="4" name="code" type="text" /> 

Иногда нужно заставить вводить пользователя только заглавные или только строчные буквы. В этом поможет CSS-стиль text-transform.

<input name="name" style="text-transform:uppercase" type="text" />

Режимы преобразования:

  • uppercase — все заглавные,
  • lowercase — все строчные,
  • capitalize — каждое слово с заглавной буквы.

Убираем сообщение об ошибке, когда пользователь её исправляет

Пользователь заполнил форму с ошибкой, появилось сообщение, например, «введите валидный email». Пользователь снова вводит email, а сообщение об ошибке всё ещё висит в форме. Это раздражает. Поэтому сообщение об ошибке надо убирать после того, как пользователь приступает к её исправлению.

А вот пример, в котором сначала было сообщение об ошибке, но, как только вы вновь вводите курсор в поле ввода, оно сменяется на инструкцию:

Для этого мы использовали следующий код:

<!doctype html><html lang="ru-RU" prefix="og: http://ogp.me/ns#"><head><meta charset="UTF-8"></head>

<body>
<form style="width: 320px; background: #f5f5f5; padding: 15px 20px;">
<div class="form-group row">
<label class="col-sm-4 col-form-label" for="email-txt">Email:</label><input name="email" value="" id="email-txt" oninvalid="this.setCustomValidity('Обязательно укажите валидный email!');" oninput="setCustomValidity(''); this.blur(); this.focus();" class="col-sm-7" required="" type="email">
</div>
<div class="form-group row">
<label class="col-sm-4 col-form-label" for="url-txt">Сайт:</label><input name="url" value="" id="url-txt" oninvalid="this.setCustomValidity('Обязательно укажите валидный URL вашего сайта!')" oninput="setCustomValidity('');  this.blur(); this.focus();" class="col-sm-7" required="" type="url">
</div>
<input value="OK" type="submit">
</form>
<script>
    /*
    document.addEventListener('invalid', (function () {
    return function (e) {
        e.preventDefault();
        document.getElementById("email-txt").focus();
    };
})(), true);
*/
</script>
</body>
</html>

 

Узнавайте об обновлениях блога Email Soldiers первым

Спасибо!

Вы подписаны. Свежие материалы блога будем присылать на вашу почту.

Похожие статьи

Лидогенерация
Лидогенерация: что такое, каналы, ошибки, примеры

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

Никто не любит поп-апы, зачем тогда ими пользоваться
Никто не любит поп-апы, зачем тогда ими пользоваться?

Собрали статистику, как пользователи относятся к поп-апам: как часто подписываются, как часто закрывают, в чём разница между мобильными и десктопными пользователями.

Сбор качественной базы подписчиков
Клиентам о email-маркетинге, часть 2. Лидогенерация

Вторая статья из цикла о email-маркетинге. Рассказываем, на чём строится качественная лидогенерация — что нужно или не нужно делать, когда вы собираете собственную базу контактов.

Сведения для государственной аккредитации в области ИТ

Реквизиты и контакты

ООО «Емейл Солджерс»

ИНН 6234170866 · ОГРН 1176234015660

Основной ОКВЭД: 62.09

390000, г. Рязань, ул. Николодворянская, д. 18, пом. Н1

Тел.: +7 495 003-17-94 · manager@emailsoldiers.ru

Коды ОКВЭД

62.01 (разработка ПО), 62.02, 62.09, 63.11, 63.12, 63.91, 63.99, 70.22, 73.20, 82.99, 95.11, 95.12

Виды деятельности в области ИТ
(Приказ Минцифры от 11.05.2023 № 449)

1.01 — проектирование, обследование, разработка и адаптация программ для ЭВМ, баз данных и пользовательских интерфейсов

1.04 — деятельность и услуги в отношении информационных систем (CRM, аналитика, BI)

1.05 — деятельность и услуги в отношении сайтов и страниц сайтов

26.01 — обработка, систематизация и верификация данных

Реализуемые продукты, услуги и работы

Email- и CRM-маркетинг под ключ: разработка триггерных и регулярных рассылок и коммуникационных сценариев, проектирование и автоматизация коммуникаций (email, SMS, push, мессенджеры), сегментация и аналитика клиентской базы, интеграция и настройка платформ рассылок и CRM, дизайн и адаптивная вёрстка писем, веб-аналитика и BI-отчётность, разработка интеграций между платформами рассылок, CRM и сайтом.

Стоимость работ и услуг

Определяется индивидуально в коммерческом предложении по итогам брифа. Ориентировочно: разовый проект email-/CRM-маркетинга — от 150 000 ₽; ежемесячное сопровождение — от 100 000 ₽ / мес. Точная стоимость — по запросу: manager@emailsoldiers.ru.

Технологический стек

Языки: C#, JavaScript, PHP, Python, SQL, HTML/CSS. Платформы и CDP/CRM: ASP.NET Core, Mindbox, Bitrix24, Sendsay, Unisender, Carrot quest. Базы данных: MongoDB, MySQL. Аналитика и BI: Яндекс Метрика, Power BI, Яндекс DataLens. Инфраструктура: WordPress, REST API, вебхуки.

Исключительные права на ПО

Программа для ЭВМ «RACS» (REST API CRUD веб-сервис баз данных) — правообладатель ООО «Емейл Солджерс» (свидетельство о государственной регистрации программы для ЭВМ, автор — Сафоничев А. П.). Назначение: REST API CRUD-интерфейс к облачной нереляционной базе данных — виджеты, голосования, обзоры, комментарии, счётчики статистики. Реализация: C#, ASP.NET Core, MongoDB. Права использования предоставляются по лицензионному договору. Иные работы выполняются на лицензионных платформах и собственных программных решениях (скрипты, шаблоны, интеграции).