2010-07-16 2 views
1

Снова я, вероятно, являюсь глупым, у меня возникают проблемы с событиями слушателя объектов.В случае выбора/щелчка Ext.RadioGroup

у меня есть:

new Ext.form.Radio({ 
        boxLabel:'Yes', 
        id: 'car_price_type_yes', 
        name: 'car_price_type', 
        value: 1, 
        listeners: { 
         select: function (e) { 
          alert('x'); 
         } 
        } 
       }) 

Я пытаюсь получить оповещение появляется при нажатии кнопки радио.

Спасибо.

ответ

-2

Вы хотите мероприятие check. Вы действительно должны лучше познакомиться с docs, это поможет в этом вопросе.

EDIT: Кажется, люди недовольны этим ответом. OK, с Ext 4.x кажется, что событие change - это то, что вы хотите на радио/флажках.

+0

Спасибо. Извините, но когда я меняю «выбрать», чтобы проверить, я все равно не получаю предупреждение. Я также попытался взять его за пределы слушателей. – babadbee

+0

У вас должна быть другая проблема, потому что я скопировал ваш код выше, изменил событие на «проверить», и я получил предупреждение, как ожидалось. –

+0

Если ваши документы extjs не сосут так плохо, это было бы не так сложно понять. Ваши документы http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.form.field.Radio не имеют события проверки на переключателях. – boatcoder

1

Проблема связана с обработкой переключателей как своего рода ненормальной сущности. Они вообще не кажутся слушателями.

После прохождения через документацию, форумы, источник и все остальное я наткнулся на упоминание метода обработчика, и, похоже, вам нужно объявить, что у них есть обработчик (например, ниже), если вы хотите обнаружить " нажмите «событие» или событие «изменение» или событие «выбрать». Единственное «событие», которое я смог получить в 4.1.3, чтобы фактически произвести, - это вызвать функцию обработчика, ни одно из других имен событий, похоже, ничего не производит. Многие люди в документах указывают, что изменения не всегда срабатывают, мне никогда не удавалось уволить его.

{ 
    boxLabel: 'Field Based' 
    , name: 'alert_type' 
    , inputValue: 'field' 
    , xtype: "radiofield" 
    , listeners: { 
     // won't be called 
     click: function(a,b,c,d) { 
      console.log("FB",a,b,c,d); 
     } 
     // won't be called 
     ,change: function(a,b,c,d) { 
      console.log("Change",a,b,c,d); 
     } 
     // won't be called 
     , select: function(field, newValue, oldValue) { 
      console.log(field, "Radio Selected ", newValue, "to", oldValue); 
     } 
     // won't be called 
     , check: function(field, newValue, oldValue) { 
      console.log(field, "Radio Checked ", newValue, "to", oldValue); 
     } 
    } 
    // WILL BE CALLED 
    , handler: function(field, state) { 
     console.log(field, state, c, d) 
    } 
}, 

Обработчик будет производить вход выход, как:

constructor {boxLabel: "Field Based", name: "alert_type", inputValue: "field", listeners: null, handler: function…} 
true 
Смежные вопросы