$this->registerJsFile('/js/validate/validateForm.js', ['position' => \yii\web\View::POS_END]);
$this->registerJsFile('/js/heic2any.min.js', ['position' => \yii\web\View::POS_END]);
$this->registerJsFile('/js/heic_to_jpg_replace.js', ['position' => \yii\web\View::POS_END]);
-
-$js = <<<JS
-$(document).ready(function() {
- $('.write-offs-erp-form').on('submit', function(e) {
- let allRowsHaveImage = true;
-
- $('.multiple-input-list__item').each(function() {
- let row = $(this);
- let hasImageInRow = row.find('.list-cell__images_row img').length > 0;
-
- let fileInput = row.find('.list-cell__imageFiles input[type="file"]');
- let hasFilesSelected = fileInput.length && fileInput[0].files.length > 0;
-
- if (!hasImageInRow && !hasFilesSelected) {
- allRowsHaveImage = false;
- return false;
- }
- });
-
- if (!allRowsHaveImage) {
- e.preventDefault();
- alert('Пожалуйста, добавьте хотя бы одно фото к каждому списанию перед сохранением.');
- return false;
- }
- });
-});
-JS;
-
-$this->registerJs($js, \yii\web\View::POS_READY);
?>
<style>
+$(".form-validate button").click(function (e) {
+ var form = $(this).closest('form')[0];
+ e.preventDefault();
+ var yiiform = $("#" + form.id);
- $(".form-validate button").click( function (e) {
- var form = $(this).closest('form')[0];
+ if ($('.multiple-input-list__item').length === 0) {
+ alert('Добавьте хотя бы одно списание перед сохранением.');
+ return false;
+ }
- e.preventDefault();
- var yiiform = $("#"+form.id); // отправляем данные на сервер
+ let allRowsHaveImage = true;
- $.ajax({
- type: "post",
- url: "validate",
- data: yiiform.serializeArray()
- }
- )
- .done(function(data) {
- if(data.success) {
- console.log(" данные проверены ");
- yiiform.submit();
- } else {
- console.log(" сервер вернул ошибку ")
- if (data.errors) {
- // alert(data.errors[Object.keys(data.errors).shift()][0]);
- var values = [];
- $.each(data.errors, function(key,value) {
- values.push(value);
- });
- var strOut = values.join (', \n');
- var strOut2 = values.join (', <br>');
- alert(strOut);
- $('.messages').html(strOut2);
-
- }
- }
- })
- .fail(function () {
- console.log(" не удалось выполнить запрос к серверу ")
- })
- return false; // отменяем отправку данных формы
+ $('.multiple-input-list__item').each(function () {
+ let row = $(this);
+ let hasImageInRow = row.find('.list-cell__images_row img').length > 0;
+ let fileInput = row.find('.list-cell__imageFiles input[type="file"]');
+ let hasFilesSelected = fileInput.length && fileInput[0].files.length > 0;
+
+ if (!hasImageInRow && !hasFilesSelected) {
+ allRowsHaveImage = false;
+ return false;
+ }
+ });
+
+ if (!allRowsHaveImage) {
+ alert('Пожалуйста, добавьте хотя бы одно фото к каждому списанию перед сохранением.');
+ return false;
+ }
+
+ $.ajax({
+ type: "post",
+ url: "validate",
+ data: yiiform.serializeArray()
})
+ .done(function (data) {
+ $('.messages').html('');
+ yiiform.find('.has-error').removeClass('has-error');
+ yiiform.find('.help-block').remove();
+
+ if (data.success) {
+ yiiform.submit();
+ } else {
+ if (data.errors) {
+ var values = [];
+
+ $.each(data.errors, function (key, value) {
+ values.push(value);
+ var field = yiiform.find('[name="' + key + '"]');
+ if (field.length) {
+ field.closest('.form-group').addClass('has-error');
+ field.after('<div class="help-block">' + value[0] + '</div>');
+ }
+ });
+
+ var strOut = values.join(', \n');
+ var strOut2 = values.join(', <br>');
+ alert(strOut);
+ $('.messages').html(strOut2);
+ }
+ }
+ })
+ .fail(function () {
+ console.log("не удалось выполнить запрос к серверу");
+ });
+
+ return false;
+});