Обработка событий
Доброго времени суток.
Подскажите как можно реализовать следующую вещь. Есть форма на которой есть поля для ввода текста. Как по нажатию на кнопку вызвать событие у этих полей, которое сбрасывает поле в значение по умолчанию. Да конечно можно пробежаться по всем элементам и вызвать fireEvent, но делать подобное если у тебя штук 20 форм не очень удобно. Есть ли способ вызвать fireEvent для всех полей НЕ в цикле? |
Думаю если заданы значения по умолчанию, то достаточно выполнить метод reset() для формы, и всем полям будут присвоены их значения по умолчанию. Как-то так. Если правильно понял вопрос.
|
Ну это частный случай. В данном случае это выход. Интересует вопрос возможно ли добавить контейнеру событие, которое будет срабатывать в том случае, что я описал? Т.е. есть форма, внутри куча контейнеров и кнопка. Нажав на кнопку вызывается событие контейнеров, при этом что б не было необходимости перебирать все компоненты и вызывать эти события в цикле.
|
Я конечно не большой специалист в ExtJS, но по моему Вы все усложняете. Если посмотреть исходный код метода reset() для формы, то там идет именно перебор полей формы в цикле:
reset: function() { var me = this; me.batchLayouts(function() { me.getFields().each(function(f) { f.reset(); }); }); return me; } Ну а так Вы можете определить свое событие. Подписать на это событие все Ваши "контейнеры". И в обработчике выполнять необходимые действия. А по нажатию на кнопку генерировать описанное выше событие. Но по моему, если эти контейнеры являются формами, то проще по нажатию на кнопку просто перебрать их в цикле, и выполнить для них метод reset(). И всего то пару строк кода. |
Да, соглашусь.
Раз в Ext так реализуют, то очевидно, что для этого фреймворка это решение верное. Спасибо за помошь. |
Часовой пояс GMT +3, время: 17:04. |