Класс y5.ActiveForm

Cлежение за событиями, происходящими в формах ввода.
Предназначен для построения активных форм, т.е. форм, предусматривающих мгновенную реакцию на действия пользователя. Позволяет отслеживать и обрабатывать следующие события:
y5:ElementValueChanged - содержимое элемента формы было изменено пользователем;
y5:ElementAdded — к форме был добавлен новый элемент;
y5:ElementRemoved — из формы был удален элемент.
По умолчанию отслеживаются элементы input, select, textarea и button.
Чтобы не отслеживать изменения элемента, необходимо перед созданием ActiveForm установить/добавить ему класс 'notrack'.

Требует загрузки модуля ActiveForm.

new

new y5.ActiveForm(form, names, trackTimeout)

Имя аргументаТипОписание
formElementформа
namesArrayсписок элементов в формате cssQuery, по умолчанию: ['input', 'select', 'textarea', 'button']
trackTimeoutIntegerтаймаут, через который проверяются изменения структуры формы и значения полей (в секундах, по умолчанию 0, т.е. изменения не отслеживаются)

Пример:

// создаем экземпляр
new y5.ActiveForm(form);

// слушаем событие y5:ElementValueChanged для всей формы
y5.Events.observe('y5:ElementValueChanged', function(e) {
    // в callback-функцию передается измененный элемент
    console.log(e);
}, form, true);

y5.Events.observe('y5:ElementAdded', function(e) {
    console.log('Добавлен элемент ' + e.name);
}, form, true);

y5.Events.observe('y5:ElementRemoved', function(e) {
    console.log('Удален элемент ' + e.name);
}, form, true);

// слушаем событие y5:ValueChanged для конкретного элемента формы
y5.Events.observe('y5:ValueChanged', function(e) {
    // в callback-функцию передается измененный элемент
    // e.name == 'test'
}, form.test, true);

addElement

addElement(element)

Добавляет элемент формы в список отслеживаемых. Если при инициализации экземпляра класса был установлен таймаут, отличный от нуля, то включается механизм автоматического отслеживания изменений структуры формы и вызывать этот метод нет необходимости.

Имя аргументаТипОписание
elementElementэлемент формы

checkChanges

checkChanges()

Проверяет структуру формы. В результате проверки могут быть вызваны следующие события: y5:ElementAdded, y5:ElementRemoved.
Если при инициализации экземпляра класса был установлен таймаут, отличный от нуля, то включается механизм автоматического отслеживания изменений структуры формы и вызывать этот метод нет необходимости.

isDataModified

isDataModified() -> Boolean — изменены ли значения отлеживаемых элементов

Проверяет изменение содержимого отлеживаемых элементов. Метод возвращает true, если значения были изменены.

isFormModified

isFormModified() -> Boolean — изменена ли структруа формы

Проверяет модификацию структуры формы. Метод возвращает true, если форма, как DOM-объект, была изменена.

isModified

isModified() -> Boolean — изменена ли форма

Проверяет модификацию формы. Метод возвращает true, если значения отлеживаемых элементов или сама форма были изменены.

removeElement

removeElement(element)

Удаляет элемент формы из списка отслеживаемых. Если при инициализации экземпляра класса был установлен таймаут, отличный от нуля, то включается механизм автоматического отслеживания изменений структуры формы и вызывать этот метод нет необходимости.

Имя аргументаТипОписание
elementElementэлемент формы

saveState

saveState()

Сохраняет текущее состояние формы, от которого будут отслеживаться последующие изменения.