diff --git a/webApp/templates/2.0/main_page.pug b/webApp/templates/2.0/main_page.pug index 2ea11a7..ce0118e 100644 --- a/webApp/templates/2.0/main_page.pug +++ b/webApp/templates/2.0/main_page.pug @@ -22,9 +22,10 @@ script(type="text/javascript", src="/js/2.0.dashboard.js?q="~randomString()) - .my-3.mx-4 - label.form-label.m-0(for="fio")='Фамилия Имя Отчество' + .my-3.mx-4.success-field + label.form-label.m-0(for="fio")='Фамилия Имя Отчество полностью' input.form-control.tg_input#fio + small="(Пожалуйста, проверьте формат ввода)" .my-3.mx-4.success-field label.form-label.m-0(for="tel")="Телефон" .row.m-0.p-0.justify-content-between @@ -54,16 +55,19 @@ script(type="text/javascript", src="/js/2.0.dashboard.js?q="~randomString()) label.form-label.m-0(for="postal_code")='Код подразделения' input.form-control.tg_input#postal_code small="(Пожалуйста, проверьте формат ввода)" - .my-3.mx-4 + .my-3.mx-4.success-field label.form-label.m-0(for="passport_issued_by")='Кем выдан паспорт' select.form-select.tg_input#passport_issued_by(style="") option(disabled, selected)="Кем выдан паспорт" - .my-3.mx-4 - label.form-label.m-0(for="address")='Адрес регистрации' + small="(Пожалуйста, проверьте формат ввода)" + .my-3.mx-4.success-field + label.form-label.m-0(for="address")='Адрес регистрации в формате: РЕГИОН, НАСЕЛЕННЫЙ ПУНКТ, УЛИЦА, ДОМ, КВАРТИРА' input.form-control.tg_input#address - .my-3.mx-4 - label.form-label.m-0(for="residential_address")='Адрес проживания' + small="(Пожалуйста, проверьте формат ввода)" + .my-3.mx-4.success-field + label.form-label.m-0(for="residential_address")='Адрес проживания в формате: РЕГИОН, НАСЕЛЕННЫЙ ПУНКТ, УЛИЦА, ДОМ, КВАРТИРА' input.form-control.tg_input#residential_address + small="(Пожалуйста, проверьте формат ввода)" .my-3.mx-4.success-field label.form-label.m-0(for="snils")='СНИЛС' input.form-control.tg_input#snils diff --git a/webApp/templates/static/js/2.0.dashboard.js b/webApp/templates/static/js/2.0.dashboard.js index d893cb7..c07b221 100644 --- a/webApp/templates/static/js/2.0.dashboard.js +++ b/webApp/templates/static/js/2.0.dashboard.js @@ -43,22 +43,34 @@ $(document).ready(function(){ $('body').append(''); $('body').append(''); - $('#fio').on('input', function() { + + $('#fio').on('input', function () { let input = $(this).val(); + + // Убираем все лишние символы, кроме букв и пробелов input = input.replace(/[^a-zA-Zа-яА-ЯёЁ ]/g, ''); - // Разделение текста по пробелам и преобразование каждого слова - let words = input.split(/\s+/); // Разбиваем по пробелам - // Преобразуем каждое слово - let formattedInput = words.map(word => { + + // Преобразуем каждое слово, чтобы оно начиналось с заглавной буквы + let formattedInput = input.split(' ').map(word => { if (word.length > 0) { return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase(); } - return ''; // Если слово пустое (например, несколько пробелов), не изменяем + return ''; // Пустые слова не трогаем }).join(' '); // Объединяем обратно с пробелами + // Обновляем поле ввода с отформатированным текстом $(this).val(formattedInput); + + // Проверяем количество слов + let words = formattedInput.trim().split(/\s+/); // Убираем лишние пробелы + if (words.length < 3 || words.some(word => word.length < 2)) { + $(this).parent().removeClass('success-field').addClass('errors-field'); // Подсветить поле + } else { + $(this).parent().removeClass('errors-field').addClass('success-field'); // Убрать подсветку + } }); + $('#email').on('input', function() { let input = $(this).val(); // Разрешаем только буквы, цифры, точки, дефисы и подчеркивания @@ -91,6 +103,42 @@ $(document).ready(function(){ } }); + $('#address').on('input', function () { + let input = $(this).val(); + + // Преобразуем все символы в верхний регистр + input = input.toUpperCase(); + + // Обновляем поле ввода + $(this).val(input); + + // Проверяем формат: должно быть минимум 5 частей, разделённых запятыми + let parts = input.split(','); + if (parts.length < 5 || parts.some(part => part.trim().length === 0)) { + $(this).parent().removeClass('success-field').addClass('errors-field'); + } else { + $(this).parent().removeClass('errors-field').addClass('success-field'); + } + }); + + $('#residential_address').on('input', function () { + let input = $(this).val(); + + // Преобразуем все символы в верхний регистр + input = input.toUpperCase(); + + // Обновляем поле ввода + $(this).val(input); + + // Проверяем формат: должно быть минимум 5 частей, разделённых запятыми + let parts = input.split(','); + if (parts.length < 5 || parts.some(part => part.trim().length === 0)) { + $(this).parent().removeClass('success-field').addClass('errors-field'); + } else { + $(this).parent().removeClass('errors-field').addClass('success-field'); + } + }); + // Проверка на дату выдачи паспорта (выдан после 14, 20 или 45 лет) $('#passport_date').on('change', function() { const passportDate = new Date($(this).val()); @@ -244,6 +292,21 @@ $(document).ready(function(){ $(this).attr("disabled", true); message = {} + if ($('#residential_address').val().split(',').length < 5 || $('#residential_address').val().split(',').some(part => part.trim().length === 0)) { + show_error('Пожалуйста, введите адрес проживания в следующем формате, используя заглавные буквы и расставляя все запятые:\nРЕГИОН, НАСЕЛЕННЫЙ ПУНКТ, УЛИЦА, ДОМ, КВАРТИРА', false); + $(this).children(".spinner-border").addClass('d-none'); + $(this).removeAttr("disabled"); + return; + } + + if ($('#address').val().split(',').length < 5 || $('#address').val().split(',').some(part => part.trim().length === 0)) { + show_error('Пожалуйста, введите адрес регистрации в следующем формате, используя заглавные буквы и расставляя все запятые:\nРЕГИОН, НАСЕЛЕННЫЙ ПУНКТ, УЛИЦА, ДОМ, КВАРТИРА', false); + $(this).children(".spinner-border").addClass('d-none'); + $(this).removeAttr("disabled"); + return; + } + + if(!(validate_length($('#fio').val(), 3))) { show_error('Введите ФИО', false); @@ -304,13 +367,7 @@ $(document).ready(function(){ return; } - if(!(validate_length($('#address').val(), 3))) - { - show_error('Введите адрес регистрации', false); - $(this).children(".spinner-border").addClass('d-none'); - $(this).removeAttr("disabled"); - return; - } + if(!(validate_length($('#residential_address').val(), 3))) {