Skip to content

Commit 3dd59a1

Browse files
committed
[PRAC/cont] Fix not displaying "is-invalid" msg's
Exclud not displaying modal-inputs "invalid" msg's/borders (on submit). Worth noting: - and CSS corrections. core: B-3 / JS-BL
1 parent 5f9ba86 commit 3dd59a1

File tree

2 files changed

+27
-16
lines changed

2 files changed

+27
-16
lines changed

core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/css/modal-type.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,10 @@
111111
min-height: 45px;
112112
}
113113

114+
.modal__body-inputs-wrap .modal__body-input.is-invalid {
115+
border-bottom: 1px solid var(--bootstrap-red);
116+
}
117+
114118
.modal__body-input:focus {
115119
border-color: var(--main-purple);
116120
/* тень только снизу */

core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/js/index.js

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -894,25 +894,32 @@
894894
const parent = input.parentNode;
895895
const feedback = parent.querySelector('.invalid-feedback');
896896

897-
if (input.value.trim() === '') {
897+
if (input.value.trim() === '' || !input.checkValidity()) {
898898
// определение/вывод сообщения в зависимости от "класса" инпута
899-
if (input.classList.contains('modal__body-add-contact-input')) {
900-
validErrors.push('Заполните поле контакта или удалите!');
901-
if (feedback)
902-
feedback.textContent = 'Заполните поле контакта или удалите!';
903-
} else if (!input.classList.contains('modal-patronymic-input')) {
904-
validErrors.push(`Заполните поле "${input.placeholder}"!`);
905-
if (feedback)
906-
feedback.textContent = `Заполните поле "${input.placeholder}"!`;
907-
} else if (input.classList.contains('modal-patronymic-input')) {
908-
// индивидуальное сообщение для поля "Отчество", НО без добавления в массив ошибок
909-
if (feedback)
910-
feedback.textContent =
911-
'Заполните поле "Отчество" или оставьте его пустым!';
912-
}
899+
if (!input.classList.contains('is-invalid')) {
900+
if (input.classList.contains('modal__body-add-contact-input')) {
901+
validErrors.push('Заполните поле контакта или удалите!');
902+
if (feedback)
903+
feedback.textContent = 'Заполните поле контакта или удалите!';
904+
} else if (!input.classList.contains('modal-patronymic-input')) {
905+
validErrors.push(`Заполните поле "${input.placeholder}"!`);
906+
if (feedback)
907+
feedback.textContent = `Заполните поле "${input.placeholder}"!`;
908+
} else if (input.classList.contains('modal-patronymic-input')) {
909+
// индивидуальное сообщение для поля "Отчество", НО без добавления в массив ошибок
910+
if (feedback)
911+
feedback.textContent =
912+
'Заполните поле "Отчество" или оставьте его пустым!';
913+
}
913914

914-
input.classList.add('is-invalid'); // выделение инпута "красным"
915+
input.classList.add('is-invalid'); // выделение инпута "красным"
916+
}
915917
} else {
918+
// отображение ошибок
919+
if (input.classList.contains('is-invalid')) {
920+
return; // если "is-invalid".. оставляем
921+
}
922+
916923
// а если данные валидны, отмена выделения/исключение сообщения
917924
input.classList.remove('is-invalid');
918925
if (feedback) feedback.textContent = '';

0 commit comments

Comments
 (0)