|
956 | 956 | // определение с чего должен начинаться доп. контакт |
957 | 957 | else if (!/^[a-zA-Z]/.test(target.value)) { |
958 | 958 | errors.push( |
959 | | - 'Доп. контакт должен начинаться только с англ. букв! Типа: "Instagram: @user1"' |
| 959 | + 'Доп. контакт должен начинаться только с английских букв, например: Instagram: @user1' |
960 | 960 | ); |
961 | 961 | target.classList.add('is-invalid'); |
962 | 962 | invalidFeed.textContent = |
963 | | - 'Доп. контакт должен начинаться только с англ. букв! Типа: "Instagram: @user1"'; |
| 963 | + 'Доп. контакт должен начинаться только с английских букв, например: Instagram: @user1'; |
964 | 964 | } |
965 | 965 | // если всё корректно (сообщений нет) |
966 | 966 | else { |
|
1210 | 1210 | addModalContactHiddenInput.setAttribute('value', 'phone'); // начальное значение, согласно textContent кнопки |
1211 | 1211 | addModalContactHiddenInput.setAttribute('type', 'hidden'); |
1212 | 1212 | addModalContactHiddenInput.setAttribute('name', 'contact-type'); |
1213 | | - addModalContactInput.setAttribute('type', 'text'); |
| 1213 | + addModalContactInput.setAttribute('type', 'tel'); |
1214 | 1214 | addModalContactInput.setAttribute('name', 'contact-data'); |
1215 | 1215 | addModalContactInput.setAttribute('placeholder', 'Введите данные контакта'); |
1216 | 1216 | addModalContactInput.setAttribute('required', ''); |
|
1365 | 1365 | } |
1366 | 1366 | } |
1367 | 1367 |
|
| 1368 | + updateRowInputType(addModalContactInput, selectedItemValue); // обновление атрибута/значения "type" у/для инпута (кому возможно) |
1368 | 1369 | updateDropItemPaddings(addModalContactList); // обновление/изменение отступов для li/вариантов выпадающего списка (для первого и последнего элементов) |
1369 | 1370 | closeBtnDropdown(); // закрытие выпадающего списка |
1370 | 1371 | addModalContactInput.focus(); // перевод фокуса на соседний инпут (после выбора в выпадающем списке) |
1371 | 1372 | } |
1372 | 1373 |
|
| 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 | + |
1373 | 1387 | function updateDropItemPaddings(dropList) { |
1374 | 1388 | Array.from(dropList.children).forEach((item) => { |
1375 | 1389 | item.classList.remove('first-visible', 'last-visible'); // изначальная очистка от дополнительных классов |
|
0 commit comments