Cлежение за событиями, происходящими в формах ввода.
Предназначен для построения активных форм, т.е. форм, предусматривающих мгновенную реакцию на действия пользователя. Позволяет отслеживать и обрабатывать следующие события:
y5:ElementValueChanged - содержимое элемента формы было изменено пользователем;
y5:ElementAdded — к форме был добавлен новый элемент;
y5:ElementRemoved — из формы был удален элемент.
По умолчанию отслеживаются элементы input, select, textarea и button.
Чтобы не отслеживать изменения элемента, необходимо перед созданием ActiveForm установить/добавить ему класс 'notrack'.
Требует загрузки модуля ActiveForm.
new
new y5.ActiveForm(form, names, trackTimeout)
Имя аргумента | Тип | Описание |
---|---|---|
form | Element | форма |
names | Array | список элементов в формате cssQuery, по умолчанию: ['input', 'select', 'textarea', 'button'] |
trackTimeout | Integer | таймаут, через который проверяются изменения структуры формы и значения полей (в секундах, по умолчанию 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)
Добавляет элемент формы в список отслеживаемых. Если при инициализации экземпляра класса был установлен таймаут, отличный от нуля, то включается механизм автоматического отслеживания изменений структуры формы и вызывать этот метод нет необходимости.
Имя аргумента | Тип | Описание |
---|---|---|
element | Element | элемент формы |
checkChanges
checkChanges()
Проверяет структуру формы. В результате проверки могут быть вызваны следующие события: y5:ElementAdded, y5:ElementRemoved.
Если при инициализации экземпляра класса был установлен таймаут, отличный от нуля, то включается механизм автоматического отслеживания изменений структуры формы и вызывать этот метод нет необходимости.
isDataModified
isDataModified() -> Boolean — изменены ли значения отлеживаемых элементов
Проверяет изменение содержимого отлеживаемых элементов. Метод возвращает true, если значения были изменены.
isFormModified
isFormModified() -> Boolean — изменена ли структруа формы
Проверяет модификацию структуры формы. Метод возвращает true, если форма, как DOM-объект, была изменена.
isModified
isModified() -> Boolean — изменена ли форма
Проверяет модификацию формы. Метод возвращает true, если значения отлеживаемых элементов или сама форма были изменены.
removeElement
removeElement(element)
Удаляет элемент формы из списка отслеживаемых. Если при инициализации экземпляра класса был установлен таймаут, отличный от нуля, то включается механизм автоматического отслеживания изменений структуры формы и вызывать этот метод нет необходимости.
Имя аргумента | Тип | Описание |
---|---|---|
element | Element | элемент формы |
saveState
saveState()
Сохраняет текущее состояние формы, от которого будут отслеживаться последующие изменения.