yiiActiveForm и validate без сохранения

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Cacatuidae
Сообщения: 65
Зарегистрирован: 2017.01.08, 17:39

yiiActiveForm и validate без сохранения

Сообщение Cacatuidae »

Народ, просветите, почему нормально (без костылей) невозможно вызвать полноценную валидацию формы, БЕЗ сохранения, с помощью yiiActiveForm('validate')?
Приходится костылить: подписываться на событие beforeSubmit, там определять реально ли мы сабмитим форму или просто валидируем.
Аватара пользователя
Cacatuidae
Сообщения: 65
Зарегистрирован: 2017.01.08, 17:39

Re: yiiActiveForm и validate без сохранения

Сообщение Cacatuidae »

Или может у кого есть более изящнее решение по костылю?

Код: Выделить всё

function yiiActiveFormValidate(form) {
    if (typeof form.data('yiiActiveForm') === 'undefined') {
        return;
    }

    var isOnlyValidate = false;

    form
        .one('beforeValidate', function () {
            isOnlyValidate = true;
        })
        .one('afterValidate', function (e, messages, errorAttributes) {
            if (errorAttributes.length) {
                isOnlyValidate = false;
            } else {
                form.one('beforeSubmit', function () {
                    if (isOnlyValidate) {
                        isOnlyValidate = false;
                        return false;
                    }
                })
            }
        })
        .yiiActiveForm('validate', true);
}
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: yiiActiveForm и validate без сохранения

Сообщение maleks »

Так, не работает что ли?:

$('#contact-form').yiiActiveForm('validate', true);
Yii2 universal module sceleton - for basic and advanced templates
Аватара пользователя
Cacatuidae
Сообщения: 65
Зарегистрирован: 2017.01.08, 17:39

Re: yiiActiveForm и validate без сохранения

Сообщение Cacatuidae »

.yiiActiveForm('validate', true) -> сохраняет форму. Нужна просто валидация, без сохранения.
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: yiiActiveForm и validate без сохранения

Сообщение maleks »

мда, действительно, сабмитит форму.
Может доки те устарели и уже сейчас так задумано, а может и баг.
Yii2 universal module sceleton - for basic and advanced templates
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: yiiActiveForm и validate без сохранения

Сообщение andku83 »

судя по https://github.com/yiisoft/yii2/blob/ma ... rm.js#L302

Код: Выделить всё

.yiiActiveForm('validate', false)
Аватара пользователя
Cacatuidae
Сообщения: 65
Зарегистрирован: 2017.01.08, 17:39

Re: yiiActiveForm и validate без сохранения

Сообщение Cacatuidae »

Код: Выделить всё

.yiiActiveForm('validate', false)

Не валидируем как при сабмите. Не подсвечиывает ошибки.
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: yiiActiveForm и validate без сохранения

Сообщение maleks »

Уже давно оказывается висит эта задача
Yii2 universal module sceleton - for basic and advanced templates
Ответить