Добавил проверку данных через полимед и подтверждение через код верификации

This commit is contained in:
2024-12-25 01:59:06 +05:00
parent 2ec8a806e6
commit 9ffeab6b3a
4 changed files with 267 additions and 44 deletions
+12 -7
View File
@@ -22,11 +22,11 @@ script(type="text/javascript", src="/js/2.0.dashboard.js?q="~randomString())
.my-3.mx-4.success-field
.my-3.mx-4.success-field.primary-field
label.form-label.m-0(for="fio")='Укажите ФИО пациента строго в формате “Фамилия Имя Отчество”. Если пациентом является Ваш ребенок, введите только ФИО ребенка.'
input.form-control.tg_input#fio
small="(Пожалуйста, проверьте формат ввода)"
.my-3.mx-4.success-field
.my-3.mx-4.success-field.primary-field
label.form-label.m-0(for="tel")="Телефон"
.row.m-0.p-0.justify-content-between
.col-auto.m-0.p-0(style="min-width: 85%;")
@@ -35,17 +35,22 @@ script(type="text/javascript", src="/js/2.0.dashboard.js?q="~randomString())
button.btn.btn-danger#clear_tel
span.x-icn
small="(Пожалуйста, проверьте формат ввода)"
.my-3.mx-4.success-field
.my-3.mx-4.success-field.primary-field
label.form-label.m-0(for="dob")='Укажите год рождения пациента в формате YYYY. Если пациентом является Ваш ребенок, введите только год рождения ребенка в формате YYYY.'
input.form-control.tg_input#dob
input.form-control.tg_input#dob(type="date")
small="(Пожалуйста, проверьте формат ввода)"
//.my-3.mx-4.success-field#verification(style="display: none;")
.my-3.mx-4.success-field.verification(style="display: none;")
label.form-label.m-0(for="kod")='Код верификации'
input.form-control#kod
small="(Пожалуйста, проверьте формат ввода)"
.my-3.mx-4
.my-3.mx-4.primary-field
button.btn.btn-success.float-end.mb-3#form_submit
span.spinner-border.spinner-border-sm.me-1.d-none(role="status" aria-hidden="true")
span="Подтвердить"
span="Подтвердить"
.my-3.mx-4.primary-field.verification(style="display: none;")
button.btn.btn-success.float-end.mb-3#code_submit
span.spinner-border.spinner-border-sm.me-1.d-none(role="status" aria-hidden="true")
span="Отправить код"
+94 -23
View File
@@ -64,22 +64,20 @@ $(document).ready(function(){
$("#dob").attr('maxlength','4');
$('#dob').on('input', function() {
let input = $(this).val();
// Удаляем все символы, кроме цифр
input = input.replace(/\D/g, '');
// Обновляем поле ввода
$(this).val(input);
// Проверка на дату рождения (не старше 80 лет)
$('#dob').on('change', function() {
const dob = new Date($(this).val());
const currentDate = new Date();
const age = currentDate.getFullYear() - dob.getFullYear();
// Проверка на минимальную длину (не менее 11 символов)
if (input.length < 4) {
// Если введено меньше цифр, показываем ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если введено достаточно цифр, показываем успех
$(this).parent().removeClass('errors-field').addClass('success-field');
}
// Проверка на возраст (не старше 80 лет)
if (age > 100 || (age === 100 && (currentDate.getMonth() < dob.getMonth() || (currentDate.getMonth() === dob.getMonth() && currentDate.getDate() < dob.getDate())))) {
// Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если возраст нормален, подсвечиваем ячейку как успешную
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
@@ -108,6 +106,7 @@ $(document).ready(function(){
message = {}
if(!(validate_length($('#fio').val(), 3)))
{
show_error('Введите ФИО', false);
@@ -124,20 +123,94 @@ $(document).ready(function(){
return;
}
if ($('#dob').val().length !== 4 || new Date().getFullYear() - new Date($('#dob').val()).getFullYear() > 80) {
if ($('#dob').val().length !== 10 || new Date().getFullYear() - new Date($('#dob').val()).getFullYear() > 100) {
show_error('Дата рождения должна быть корректной и возраст не более 80 лет', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if ($('#dob').val().length !== 10 || new Date().getFullYear() < new Date($('#dob').val()).getFullYear()) {
show_error('Проверьте дату ввода, вы указали дату больше чем сегодняшняя дата', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
$.each($('.tg_input'), function(e) {
message[$(this).prop("id")] = $(this).val();
});
$.ajax({
type: "post",
url: "/tel_verification",
processData: false, // tell jQuery not to process the data
contentType: false, // tell jQuery not to set contentType
async: true,
data: JSON.stringify(message),
success: (data) => {
if(data.success==true){
$('.primary-field').hide();
$('.verification').show();
}
else{
show_error(data.error);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
}
},
error:function (jqXHR, exception) {
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
show_error('Что-то пошло не так', false)
}
});
});
$("#code_submit").click(function(){
$(this).children(".spinner-border").removeClass('d-none');
$(this).attr("disabled", true);
message = {}
if(!(validate_length($('#fio').val(), 3)))
{
show_error('Введите ФИО', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if(!(validate_length($('#tel').val(), 16)))
{
show_error('Введите Телефон', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if ($('#dob').val().length !== 10 || new Date().getFullYear() - new Date($('#dob').val()).getFullYear() > 100) {
show_error('Дата рождения должна быть корректной и возраст не более 80 лет', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if ($('#dob').val().length !== 10 || new Date().getFullYear() < new Date($('#dob').val()).getFullYear()) {
show_error('Проверьте дату ввода, вы указали дату больше чем сегодняшняя дата', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
$.each($('.tg_input'), function(e) {
message[$(this).prop("id")] = $(this).val();
});
message["verification_code"] = $("#kod").val();
$.ajax({
type: "post",
url: "/form_submit",
@@ -147,10 +220,8 @@ $(document).ready(function(){
data: JSON.stringify(message),
success: (data) => {
if(data.success==true){
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
console.log(data);
show_success("Данные сохранены!")
$('.primary-field').hide();
$('.verification').show();
}
else{
show_error(data.error);