-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Description
Підготовка №1
- Як зазвичай, початок розробки нової функціональності (нового завдання) відбувається з актуальної версії продакшена (гілка main).
- Перемкніться на гілку main та завантажте найновішу версію з нашого репозиторію.
- Заведіть нову гілку під назвою 6-functions_<ім'я користувача github>.
Підготовка №2
- Видаліть всю валідацію інпутів з html. Замініть
input/button type="submit"на звичайну кнопку (button type="button") - Скопіюйте файл
script.jsз гісту і покладіть його в папкуscriptsу вашому проєкті. Підключить цей файл до сторінки логіна використовуючи тег<script>. Має вийти так:
-
Додайте атрибути
idдо елементів логін-форми, та заповніть їми константи на початку файлу по прикладуERRORS_CONTAINER_ID(Приклад: у файлі скрипта потрібно написатиconst ERRORS_CONTAINER_ID = "errors-container"- як на картинці 1)- EMAIL_INPUT_ID - значення аттрибуту id вашого email інпуту в html
- PASSWORD_INPUT_ID - значення аттрибуту id вашого password інпуту в html
- NOT_A_ROBOT_CHECKBOX_ID - значення аттрибуту id вашого чекбоксу в html
- SUBMIT_BUTTON_ID - значення аттрибуту id вашоі кнопки в html
- RESULT_PAGE_PATH - шлях до файлу вашоі сторінки з результатом ( наприклад ./result.html)
-
Якщо ви все зробили правильно, при натисканні кнопки submit ви побачите 'Підготовка успішна' в консолі браузера.
Завдання
- Вам потрібно реалізувати функцію validateForm(). Вона має перевіряти дані з форми, у випадку успіху - перенаправляти юзера на сторінку з результатом.
У випадку якщо умови не виконуються - показати помилку / помилки користувачу.
Умови
- Email має бути в форматі email@localDomen.domen. Користувач також може ввести пробіли, вам потрібно іх видаляти, для цього реалізуйте окрему функцію ( вам стануть в нагоді методи string replace() або trim().
Наприклад ' te st@te st.com ' має перетворитись в 'test@test.com'. Для перевірки використовуйте функцію isEmail(email). - Password має бути від 8 до 12 будь-яких символів
- Всі поля є required для заповнення
- Чекбокс має бути чекнутим
Для отримання значення з форми використовуйте функцію getValueById(elementId). Вона поверне вам текст з інпута, або true чи false в випадку чекбокса.
Для показу помилок використовуйте setErrors(inputData). Вона приймає обєкт inputData, де key це id вашого інпуту, а value це текст помилки. Наприклад:
const inputData = {
[EMAIL_INPUT_ID]: 'Error text';
[PASSWORD_INPUT_ID]: 'Error text';
[NOT_A_ROBOT_CHECKBOX_ID]: 'Error text';
}
Для видалення всіх помилок використовуйте функцію deleteErrors()
Для навігаціі в випадку успіху використовуйте navigateToResultPage()
Завдання з зірочкою.
Переробіть код таким чином, щоб помилки відображались не в одному місці під формою, а кожна під своім інпутом.
Metadata
Metadata
Assignees
Labels
No labels
