Yii2 Ajax удаляет пользовательские проверки JQuery - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть форма, в которой я использую Yii2 ajax ответ для проверки уникальных объектов.Теперь я должен добавить некоторую пользовательскую проверку jQuery и добавить Error Message and Error Class using jQuery, но поскольку это поле не проверяется самим Yii2, ajax удаляет сообщение об ошибке и класс, который я добавил с помощью jQuery.Может кто-нибудь помочь мне остановить Yii2 ajax, чтобы удалить эту пользовательскую проверку.

Я не могу удалить Yii2 Ajax, потому что если я это сделаю, он не будет проверять уникальную проверку на размытие.

вот пример кода.

из моей _form.php

$('#w0').on('beforeSubmit', function (z) {
    $(this).find('input.required').each(function () {
        $(this).on('blur', function () {
            if ($(this).val() == '') {
                $(this).closest('div.form-group').addClass('has-error');
                $(this).closest('div.form-group').find('p').html('This field can not be blank.');
                return false;
            }
        });
    });
});

Внутри контроллера у меня есть следующие строки

if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
    Yii::$app->response->format = Response::FORMAT_JSON;
    return ActiveForm::validate($model);
}

1 Ответ

0 голосов
/ 13 декабря 2018

Это противоречиво, ваше событие JS вызывается при отправке, но во внутренней строке есть событие blur, которое не произойдет.Потому что вы не перемещаетесь из одного поля в другое при отправке.

Так что это не код YII, а ваши JS-функции, что неправильно.

Попробуйте следующий код, он должен работать:

$('#w0').on('beforeSubmit', function (z) {
    $(this).find('input.required').each(function () {
        if ($(this).val() == '') {
            z.preventDefault();
            $(this).closest('div.form-group').addClass('has-error');
            $(this).closest('div.form-group').find('p').html('This field can not be blank.');
        }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...