Добавил проверку данных через полимед и подтверждение через код верификации
This commit is contained in:
@@ -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="Отправить код"
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user