Проблема в валидации, прикрепление фото при отправке

Цена договорная
07 августа 2021, 14:46 • 4 отклика • 58 просмотров
Привет, вообщем задача очень простая, все почти готова но есть проблема в валидации, пока не могу понять в чем.

В валидации есть проверка капчи, плюс проверка важных полей для заполнения и проверка для фото которое прикрепляю к форме.

Вот такую ошибку пишет, когда кликаю отправить в форме:



Сам скрипт валидации
<script>
$(function() {

var resolution1 = true;
var resolution2 = true;

$('#file1').change(function(e) {
var files = e.target.files;
for (var i = 0, file; file = files[i]; i++) {
var reader = new FileReader();
reader.onload = function(theFile) {
var image = new Image();
image.onload = function() {
//был код убрал
};
image.src = theFile.target.result;
};
reader.readAsDataURL(file);
}
});

$('#file2').change(function(e) {
var files = e.target.files;
for (var i = 0, file; file = files[i]; i++) {
var reader = new FileReader();
reader.onload = function(theFile) {
var image = new Image();
image.onload = function() {
//был код убрал
};
image.src = theFile.target.result;
};
reader.readAsDataURL(file);
}
});

function checkSize(file) {
var maxFileSize = 5 * 3000 * 3000; // (байт) Максимальный размер файла (5мб)
var nFiles = file.length;
for (var nFileId = 0; nFileId < nFiles; nFileId++) {
if (file[nFileId].size > maxFileSize) {
return " Ваша фотография весит слишком много, объем фотографии не должен превышать 5 мегабайт.";
}
}
return false;
}

function checkType(file) {
var nFiles = file.length;
for (var nFileId = 0; nFileId < nFiles; nFileId++) {
if (!file[nFileId].type.match(/image\/(jpeg|jpg|png)/)) {
return " Фотографии должны быть в формате jpg, png или jpeg.";
}
}
return false;
}

$('#formtexosmotr').submit(function(event) {
var alerts = "";
var errors = false;

var captcha = grecaptcha.getResponse(recaptcha1);

if (!captcha.length) {
alerts += "\n Поставьте галочку я не робот.";
errors = true;
}

var file1 = document.getElementById("file1").files;
var file2 = document.getElementById("file2").files;
var checkSize1 = checkSize(file1);
var checkSize2 = checkSize(file2);
var checkType1 = checkType(file1);
var checkType2 = checkType(file2);

if (file1.length > 0) {
alerts += "\n Выберите фото 1 (вид спереди).";
errors = true;
}
if (checkSize1) {
alerts += "\n Фото 1 (вид спереди). " + checkSize1;
errors = true;
}
if (checkType1) {
alerts += "\n Фото 1 (вид спереди). " + checkType1;
errors = true;
}
if (file2.length > 0) {
alerts += "\n Выберите фото 2 (вид сзади).";
errors = true;
}
if (checkSize2) {
alerts += "\n Фото 2 (вид сзади) " + checkSize2;
errors = true;
}
if (checkType2) {
alerts += "\n Фото 2 (вид сзади) " + checkType2;
errors = true;
}

//подсвечиваем важное поле для заполнения у которых класс valpro
$(".valpro").each(function() {
if (!$(this).val()) {
$(this).addClass('validform');
errors = true;
} else {
$(this).removeClass('validform');
}
});

if (errors) {
alert('Пожалуйста, заполните все обязательные поля.' + alerts);
}

if ((errors) && (captcha.length)) {
formData.append('g-recaptcha-response', captcha);
}

if (!errors) {
var data = $('#formtexosmotr').serialize();

$.ajax({
url: 'pay.php',
type: 'POST',
data: data,
success: function(res) {
if (res == 1) {
alert('Письмо отправлено, в ближайшее время Вам перезвонит менеджер.');
document.getElementById('formtexosmotr').reset() //отчистка полей в форме после отправки
} else {
alert('Ошибка отправки, попробуйте повторить отправку позднее.');
}
},
error: function() {
alert('Ошибка!');
}
});
}

return false;
});

});
</script>
Файлы
Отзывы
Спасибо за выполненную работу.
2 года назад
R50 c6e59209df242b6e0c27aaf3009a5c34
Фрилансер
Пожалуйста, был рад сотрудничеству.
2 года назад