Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.07.2011, 18:31
Интересующийся
Отправить личное сообщение для Shtorm Посмотреть профиль Найти все сообщения от Shtorm
 
Регистрация: 29.07.2011
Сообщений: 10

Обработка событий
Доброго времени суток.
Подскажите как можно реализовать следующую вещь.
Есть форма на которой есть поля для ввода текста. Как по нажатию на кнопку вызвать событие у этих полей, которое сбрасывает поле в значение по умолчанию.
Да конечно можно пробежаться по всем элементам и вызвать fireEvent, но делать подобное если у тебя штук 20 форм не очень удобно.
Есть ли способ вызвать fireEvent для всех полей НЕ в цикле?
Ответить с цитированием
  #2 (permalink)  
Старый 29.07.2011, 20:20
Аспирант
Отправить личное сообщение для nikolaich Посмотреть профиль Найти все сообщения от nikolaich
 
Регистрация: 16.03.2009
Сообщений: 33

Думаю если заданы значения по умолчанию, то достаточно выполнить метод reset() для формы, и всем полям будут присвоены их значения по умолчанию. Как-то так. Если правильно понял вопрос.
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2011, 21:39
Интересующийся
Отправить личное сообщение для Shtorm Посмотреть профиль Найти все сообщения от Shtorm
 
Регистрация: 29.07.2011
Сообщений: 10

Ну это частный случай. В данном случае это выход. Интересует вопрос возможно ли добавить контейнеру событие, которое будет срабатывать в том случае, что я описал? Т.е. есть форма, внутри куча контейнеров и кнопка. Нажав на кнопку вызывается событие контейнеров, при этом что б не было необходимости перебирать все компоненты и вызывать эти события в цикле.
Ответить с цитированием
  #4 (permalink)  
Старый 30.07.2011, 11:12
Аспирант
Отправить личное сообщение для nikolaich Посмотреть профиль Найти все сообщения от nikolaich
 
Регистрация: 16.03.2009
Сообщений: 33

Я конечно не большой специалист в ExtJS, но по моему Вы все усложняете. Если посмотреть исходный код метода reset() для формы, то там идет именно перебор полей формы в цикле:
reset: function() {
        var me = this;
        me.batchLayouts(function() {
            me.getFields().each(function(f) {
                f.reset();
            });
        });
        return me;
    }


Ну а так Вы можете определить свое событие. Подписать на это событие все Ваши "контейнеры". И в обработчике выполнять необходимые действия. А по нажатию на кнопку генерировать описанное выше событие.

Но по моему, если эти контейнеры являются формами, то проще по нажатию на кнопку просто перебрать их в цикле, и выполнить для них метод reset(). И всего то пару строк кода.
Ответить с цитированием
  #5 (permalink)  
Старый 30.07.2011, 22:56
Интересующийся
Отправить личное сообщение для Shtorm Посмотреть профиль Найти все сообщения от Shtorm
 
Регистрация: 29.07.2011
Сообщений: 10

Да, соглашусь.
Раз в Ext так реализуют, то очевидно, что для этого фреймворка это решение верное.
Спасибо за помошь.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка событий на динамически созданных объектах Alexey_R jQuery 28 15.02.2017 15:28
JQuery отложенная обработка событий hover DemonWather jQuery 2 09.03.2011 09:01
Скопировать обработчики событий с одного элемента на другой. Jurasmi Events/DOM/Window 3 10.11.2010 19:03
svg. обработка событий amigo* Элементы интерфейса 0 23.06.2010 22:31
Обработка событий клавиатуры MaxPayne Events/DOM/Window 26 01.05.2009 10:37