Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.05.2012, 09:59
wUI wUI вне форума
Аспирант
Отправить личное сообщение для wUI Посмотреть профиль Найти все сообщения от wUI
 
Регистрация: 19.04.2012
Сообщений: 78

textfield, передать "false" в "disabled"
Всем доброго времени суток=)
Есть два объекта:
{ 
  xtype: 'textfield',
  name: 'mName',
  emptyText: 'значение mName',
  disabled: true, // по умолчанию выставляю объект не активным
  fieldLabel: 'mName значение',
  allowBlank: false 
},{
  xtype: 'fieldcontainer',
  id: 'checkPanel',
  defaultType: 'checkboxfield',
  items: [{
            boxLabel  : 'Ввод значений mName',
            name      : 'cbName',
            inputValue: '1',
            id        : 'checkbox1'
            }]
}

Необходимо по нажатию на "cbName" передавать в "mName" значение disabled: false.
Как понимаю есть два решения, и в обоих я застрял:
1. Listeners у объекта "mName".

listeners: {
   ... // собственно не понимаю на какое событие вешать прослушку.
}


2. handler у объекта "cbName".
handler: function () {
   var sendString = Ext.getCmp('checkPanel').getValue();
   ... // не совсем ясно как передать полученное значение для mName.
}

Прошу помощи в этом вопросе
Ответить с цитированием
  #2 (permalink)  
Старый 02.05.2012, 10:44
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

example:
var items = [{
  xtype: 'textfield',
  name: 'mName',
  emptyText: 'значение mName',
  disabled: true, // по умолчанию выставляю объект не активным
  fieldLabel: 'mName значение',
  allowBlank: false
},{
  xtype: 'fieldcontainer',
  id: 'checkPanel',
  defaultType: 'checkboxfield',
  items: [{
      boxLabel: 'Ввод значений mName',
      name: 'cbName',
      inputValue: '1',
      listeners: {
          change: function() {
              this.up('panel').down('textfield').setDisabled(!this.checked);
          }
      },
      id: 'checkbox1'
   }]
}];
      
Ext.create('Ext.panel.Panel', {
    items: items,
    renderTo: Ext.getBody()
});
Ответить с цитированием
  #3 (permalink)  
Старый 02.05.2012, 11:13
wUI wUI вне форума
Аспирант
Отправить личное сообщение для wUI Посмотреть профиль Найти все сообщения от wUI
 
Регистрация: 19.04.2012
Сообщений: 78

nekto_O,
Спасибо огромное за исчерпывающий пример.=) Конкретно меня интересовало только часть:
listeners: {
   change: function() {
      this.up('panel').down('textfield').setDisabled(!this.checked);
   }
}

но с дополненым кодом, будет нагляднее для всех ищущих
Ответить с цитированием
  #4 (permalink)  
Старый 02.05.2012, 11:35
wUI wUI вне форума
Аспирант
Отправить личное сообщение для wUI Посмотреть профиль Найти все сообщения от wUI
 
Регистрация: 19.04.2012
Сообщений: 78

nekto_O,
Сразу возник еще вопрос.
В строке this.up('panel').down('textfield').setDisabled(!th is.checked);,
мы выбираем родителя текущего объекта и дочернему объекту "textfield" передаем уже значение нашего параметра.
Но возникла такая ситуация, если к примеру в Итемах у нас перед "textfield", стоит еще:
{
        xtype: 'datefield',
        fieldLabel: 'дата',
        id: 'startDate',
        name: 'nameStartDate',
        format:'d-m-Y',
        maxValue: new Date()
        },

тогда скрипт скрипт отрабатывает иначе: по нажатию на чекбокс, поле с выбором даты затемнится, а наше поле с текстом остается неудел.
Возможно ли более конкретно указывать элемент которому передается "false" в "disabled"? Например по id.
Ответить с цитированием
  #5 (permalink)  
Старый 02.05.2012, 11:46
wUI wUI вне форума
Аспирант
Отправить личное сообщение для wUI Посмотреть профиль Найти все сообщения от wUI
 
Регистрация: 19.04.2012
Сообщений: 78

Сделал вот таким образом:
Ext.getCmp('idElement').setDisabled(!this.checked);
Ответить с цитированием
  #6 (permalink)  
Старый 03.05.2012, 12:25
Интересующийся
Отправить личное сообщение для vitaliy.khmurach Посмотреть профиль Найти все сообщения от vitaliy.khmurach
 
Регистрация: 19.03.2012
Сообщений: 16

Так тоже должно работать:

listeners: {
   change: function() {
      this.up('panel').down('textfield[name="mName"]').setDisabled(!this.checked);
   }
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать значение по ссылке на другую страницу сайта Rollo Общие вопросы Javascript 7 18.10.2010 15:02
Как передать массив данных на сервер DVVID Общие вопросы Javascript 7 08.04.2010 12:11
Передать несколько значений из JS на сервер, методом POST балерун Общие вопросы Javascript 1 02.03.2010 14:36
$.ajax-как передать переменную в данных Dimaz jQuery 1 15.02.2010 16:00
Как передать переменную в handleServerResponse Motoko AJAX и COMET 2 17.07.2009 11:04