Урок:

Валідація та збереження даних форми

06.12.2022
0 0
Вміст уроку:
1
2
3

Урок не містить жодного завдання. Додайте завдання.

Щоб додати завдання, оберіть категорію завдання на панелі запитань.

1

2

3

Коли ви збираєте інформацію від людей, через форму, ви застосовуєте якісь перевірки. Недотримання цих вимог може призвести до втрати клієнтів, небажаних даних в вашій базі даних або навіть слабких місць в системі безпеки вашого сайту. Історично, створення перевірок було болісним процесом. На стороні сервера, процес полегшується завдяки фреймворкам, які обробляють все за вас, але на стороні клієнта, ви, як правило, користуєтесь JavaScript-бібліотеками, які доволі складно інтегрувати.

На щастя, HTML5 дає нам ряд можливостей, завдяки яким можна виконувати більшість перевірок. Форми в HTML5 тепер мають вбудовану підтримку для перевірки за допомогою використання спеціальних атрибутів і нових типів введення, і надають вам широкий контроль над CSS-стилями.

HTML5 Form Validation

Оцініть онлайн-демо і ознайомтесь з коротким оглядом основ HTML5 перевірки форм.

Спеціалізовані типи вводу

HTML5 вводить кілька нових типів введення. Вони можуть бути використані для створення полів вводу, які будуть приймати тільки певний тип даних.

  • color

  • date

  • datetime

  • datetime-local

  • email

  • month

  • number

  • range

  • search

  • tel

  • time

  • url

  • week

Щоб скористуватися новими типами, включіть їх в якості значення атрибута type:

    <input type="email">

Якщо браузер не підтримує цей тип вводу, це поле буде вести себе, як звичайне поле для введення тексту. Також корисно знати, що деякі поля (наприклад, email і tel) викликають відкриття спеціалізованої клавіатури у мобільних пристроїв.

Для більш докладної інформації про нові типи введення, скористайтесь MDN wiki.

Обов'язкові Поля

Просто додавши "необхідний атрибут до <input>, <select>, </select><textarea>, ви повідомляєте браузеру, які значення повинні бути в цій області. Це як червона зірочка (*), яку ми бачимо в більшості реєстраційних форм.

    <input type="checkbox" name="terms" required >

Проблема тут в тому, що майже всі дані будуть виконувати цю вимогу - наприклад, ви можете обійти перевірку залишивши порожнє місце (ми покажемо вам, як запобігти цьому).

Коли ви встанлюєте потрібний атрибут для електронної пошти або поля url, браузер очікує певний шаблон, якому потрібно слідувати, але все це є доволі відносним, адреса пошти "z@zz" буде вважатися дійсною (читайте далі, щоб побачити, як обійти це).

Обмеження

Ми можемо встановити деякі основні обмеження, такі як максимальна довжина, мінімальні і максимальні значення для числових полів. Щоб обмежити довжину поля введення і textareas, використовуйте атрибут maxlength. Це означатиме, що забороняється введення значення, яке є більшим зазначеного в maxlength. Якщо користувач намагатиметься вставити з буферу рядок більший зазначеного, то форма просто обріже його.

    <input type="text" name="name" required  maxlength="15">

Поле <input type="number"> використовує мах та min атрибути, щоб створити діапазон можливих значень (в нашому прикладі ми зробили мінімальний допустимий вік 18).

    <input type="number" name="age" min="18" required>

Стайлінг

CSS3 псевдо-класи дозволяють нам стилювати будь-які поля форми в залежності від її стану.

  • :valid

  • :invalid

  • :required

  • :optional

  • :in-range

  • :out-of-range

  • :read-only

  • :read-write

У нашому демо ми об'єднали в valid та invalid селектори з псевдо-класом focus, щоб змінювати колір поля форми на червоний або зелений, якщо користувач вибирає їх і починає заповнювати.

    input:focus:invalid,
    textarea:focus:invalid{
        border:solid 2px #F5192F;
    }
    
    input:focus:valid,
    textarea:focus:valid{
        border:solid 2px #18E109;
        background-color:#fff;
    }

Підказки

Ви, напевно, помітили, що при спробі відправити форму з невірно заповненими полями, з'являється спливаюче вікно. Встановивши атрибут title наших полів, ми можемо додавати підсказки про те, які дані очікуються.

Зверніть увагу, що різні браузери відображають спливаючі вікна по-різному. У Chrome, значення атрибуту title буде відображатися під основним повідомленням про помилку дрібним шрифтом. Firefox взагалі не відображає текст вашої спливаючої підказки, якщо Ви не використовуєте атрибут pattern, який потім береться в якості шаблону.

    <input type="text" name="name" title="Please enter your user name.">

Помилки в полях форм не можуть бути змінені, це вимагає використання JavaScript, але це окремий туторіал.

Шаблони

Атрибут pattern дозволяє розробникам задавати регулярний вираз, який браузер буде регулювати введення даних користувачем, перш ніж дозволити відправку даних. Це дає нам великий контроль над записом даних, починаючи з часів, коли RegEx структури можуть бути досить складними та точними.

Тепер, з можливістю фільтрувати вхідні значення, форма в нашому прикладі приймає тільки повні адреси електронної пошти та пароль довжиною не менше 8 символів, включаючи хоча б одне число.

Ось як це можна використовувати:

    <input type="email" name="email" required pattern="^\S+@\S+\.\S+$" title="example@mail.com">

Ми сподіваємося, що ця стаття допоможе вам отримати додаткові знання про способи валідації з HTML5. Дякую, що читаєте! 

Рефлексія від 8 учнів

Сподобався:

0

Так: 8

Ні: 0

Зрозумілий:

0

Так: 8

Ні: 0

Потрібні роз'яснення:

0

Ні: 8

Так: 0

Рекомендуємо

Створення та адміністрування сайту

Створення та адміністрування сайту

357

Аватар профіля Куленко Марія Миколаївна
Інформатика
10 клас

20 грн

Основи теорії дизайну. Стиль та композиція в дизайні

Основи теорії дизайну. Стиль та композиція в дизайні

450

Аватар профіля Куленко Марія Миколаївна
Інформатика
11 клас

20 грн

Системи керування вмістом для веб-ресурсів

Системи керування вмістом для веб-ресурсів

342

Аватар профіля Куленко Марія Миколаївна
Інформатика
10 клас

20 грн

Поняття бренду, брендингу. Елементи фірмового стилю. Айдентика

Поняття бренду, брендингу. Елементи фірмового стилю. Айдентика

319

Аватар профіля Куленко Марія Миколаївна
Інформатика
11 клас

20 грн

Поняття про мову гіпертекстової розмітки

Поняття про мову гіпертекстової розмітки

247

Аватар профіля Куленко Марія Миколаївна
Інформатика
8 клас

20 грн

ГР1 Дані та їх структури. Класифікація. Формати даних для збереження обʼєктів різних типів

ГР1  Дані та їх структури. Класифікація. Формати даних для збереження обʼєктів різних типів

419

Аватар профіля Лизько Валентина Степанівна
Інформатика
8 клас

35 грн

Схожі уроки

Впорядкування, пошук і фільтрування даних.

Впорядкування, пошук і фільтрування даних.

1281

Аватар профіля Вожга Ірина Леонідівна
Інформатика
9 клас

Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.

Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.

1102

Аватар профіля Савка-Ржематорська Оксана Василівна
Інформатика
9 клас

Цикли з передумовою у вкладених циклах

Цикли з передумовою у вкладених циклах

1341

Аватар профіля Вожга Ірина Леонідівна
Інформатика
6 клас

Налаштування часових параметрів аудіо- та відеоряду.

Налаштування часових параметрів аудіо- та відеоряду.

492

Аватар профіля Солодовнікова Катерина Олексіївна
Інформатика
8 клас

Елемент керування «кнопка». Поняття об’єкту та його властивостей і методів (на прикладі елементів екранної форми). Властивості і методи елементів керування.

Елемент керування «кнопка». Поняття об’єкту та його властивостей і методів (на прикладі елементів екранної форми). Властивості і методи елементів керування.

649

Аватар профіля Пилипенко Олена Володимирівна
Інформатика
8 клас

Елемент керування кнопка

Елемент керування кнопка

277

Аватар профіля Пилипенко Олена Володимирівна
Інформатика
8 клас