slo_nik
@slo_nik

Как после reset формы заново подключить yii.ActiveForm?

Добрый день.
Имеется форма, в которой, в зависимости от выбранного значения select валидируются разные наборы динамических полей.
Если выбрать первое значение, появляется два поля, а если второе, то пять.
Как сделать так, чтобы при переключении между вариантами не слетала валидация?
Использую вот такой код:
$(function () {
    $('form').find('.cargo-data').on('change.yii', function(){
        var $form = $(this).parents('form');

        var input = $form.find('input');
        $form.on('keyup', function(){

            $(this).find('.class-input').each(function(){
                var input = $(this);

                $form.yiiActiveForm('add', {
                    id: input.attr('id'),
                    name: input.attr('name'),
                    container: '.field-' + input.attr('id'),
                    input: '#' + input.attr('id'),
                    error: '.help-block',
                    validateOnType: true,
                    validate: function(attribute, value, messages, deferred, $form) {
                        yii.validation.required(value, messages, {message: "Заполнить обязательно!"});
                        yii.validation.number(value, messages, {
                            pattern: /^\s*\d+[,|.]*\d*\s*$/,
                            message: "Должно быть числом!"
                        });
                    }
                });

            });
        });
        $form.yiiActiveForm('resetForm');
    });
});

После валидации подготавливаю данные и отправляю ajax
$('form').on('beforeSubmit', function(e){
   // собираю данные из формы, отправляю ajax.
}

Если начать заполнять поля из какого-либо варианта, а потом перейти на другой вариант, то в предыдущем наборе полей очищаются значения, ошибки, если они были, но уже в текущем наборе ничего не работает. До 'beforeSubmit' ход не доходит. Если же я сразу выбрал какой-то из вариантов, заполнил поля, то 'beforeSubmit' срабатывает.
Как сделать так, чтобы при переключении между вариантами не слетала валидация?
  • Вопрос задан
  • 289 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Проверенно много раз, что бы не поломать мозг, просто отключаете клиентскую валидацию и юзаете только ajax
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы