Skip to content

Commit 575ef2c

Browse files
committed
[PRAC/cont] Add logic to update attr/value "type"
Organiz log to update attr/value "type" for/to inputs from contact-row. Worth noting: - that someone's value "tel" or "email", others "text". core: B-3 / JS-BL
1 parent 44fd5a2 commit 575ef2c

File tree

1 file changed

+17
-3
lines changed
  • core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/js

1 file changed

+17
-3
lines changed

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

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -956,11 +956,11 @@
956956
// определение с чего должен начинаться доп. контакт
957957
else if (!/^[a-zA-Z]/.test(target.value)) {
958958
errors.push(
959-
'Доп. контакт должен начинаться только с англ. букв! Типа: "Instagram: @user1"'
959+
'Доп. контакт должен начинаться только с английских букв, например: Instagram: @user1'
960960
);
961961
target.classList.add('is-invalid');
962962
invalidFeed.textContent =
963-
'Доп. контакт должен начинаться только с англ. букв! Типа: "Instagram: @user1"';
963+
'Доп. контакт должен начинаться только с английских букв, например: Instagram: @user1';
964964
}
965965
// если всё корректно (сообщений нет)
966966
else {
@@ -1210,7 +1210,7 @@
12101210
addModalContactHiddenInput.setAttribute('value', 'phone'); // начальное значение, согласно textContent кнопки
12111211
addModalContactHiddenInput.setAttribute('type', 'hidden');
12121212
addModalContactHiddenInput.setAttribute('name', 'contact-type');
1213-
addModalContactInput.setAttribute('type', 'text');
1213+
addModalContactInput.setAttribute('type', 'tel');
12141214
addModalContactInput.setAttribute('name', 'contact-data');
12151215
addModalContactInput.setAttribute('placeholder', 'Введите данные контакта');
12161216
addModalContactInput.setAttribute('required', '');
@@ -1365,11 +1365,25 @@
13651365
}
13661366
}
13671367

1368+
updateRowInputType(addModalContactInput, selectedItemValue); // обновление атрибута/значения "type" у/для инпута (кому возможно)
13681369
updateDropItemPaddings(addModalContactList); // обновление/изменение отступов для li/вариантов выпадающего списка (для первого и последнего элементов)
13691370
closeBtnDropdown(); // закрытие выпадающего списка
13701371
addModalContactInput.focus(); // перевод фокуса на соседний инпут (после выбора в выпадающем списке)
13711372
}
13721373

1374+
function updateRowInputType(input, contactType) {
1375+
// объект для сопоставления (кому заменять, на какое значение)
1376+
const typeMapping = {
1377+
phone: 'tel',
1378+
'extra-phone': 'tel',
1379+
email: 'email',
1380+
};
1381+
1382+
// корректировка атрибута/значения "type" (или будет text)
1383+
const newType = typeMapping[contactType] || 'text';
1384+
input.setAttribute('type', newType);
1385+
}
1386+
13731387
function updateDropItemPaddings(dropList) {
13741388
Array.from(dropList.children).forEach((item) => {
13751389
item.classList.remove('first-visible', 'last-visible'); // изначальная очистка от дополнительных классов

0 commit comments

Comments
 (0)