Добрый день.
Имеется форма, в которой, в зависимости от выбранного значения 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' срабатывает.
Как сделать так, чтобы при переключении между вариантами не слетала валидация?