Проблема в валидации, прикрепление фото при отправке
Цена договорная
Привет, вообщем задача очень простая, все почти готова но есть проблема в валидации, пока не могу понять в чем.
В валидации есть проверка капчи, плюс проверка важных полей для заполнения и проверка для фото которое прикрепляю к форме.
Вот такую ошибку пишет, когда кликаю отправить в форме:
Сам скрипт валидации
<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>
В валидации есть проверка капчи, плюс проверка важных полей для заполнения и проверка для фото которое прикрепляю к форме.
Вот такую ошибку пишет, когда кликаю отправить в форме:
Сам скрипт валидации
<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>
- Файлы
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.