2013-08-11 6 views
0

в моем приложении extjs 4, я использую компиляцию extjs, как это, эта комбинация имеет три значения, выберите, да или нет. по умолчанию мне нужно установить комбо-значение как «select». Также мне нужно предупредить пользователя, если он не выбрал ни «да», ни «нет».приведение валидации форта extjs combo box

для этого я написал такой код. Но это не работает.

xtype: 'combo', 
itemId:'comboOfficial', 
id:'comboOfficial', 
autoSelect:true, 
width:50, 
queryMode: 'local', 
store: new Ext.data.ArrayStore({ 
    id: 0, 
    fields: ['value', 'text'], 
    data: [[1, 'Select'],[2, 'Yes'], [3, 'No']] // data is local 
}), 
listeners: {             
    'select': function (combo, records, eOpts) { 
     var recordSelected = combo.getStore().getAt(0); 
     alert(recordSelected); 
     if(recordSelected == 1){ 
      alert("Please choose either 'Yes' or 'No'"); 
     } 
    } 
}, 
valueField: 'value', 
displayField: 'text', 
value: 1 

ответ

0

У вас есть две проблемы:

  1. Вы на самом деле не возложение выбранной записи на recordSelected переменный. Вы всегда извлекаете первую строку из своего магазина. Вам нужно заменить

    var recordSelected = combo.getStore().getAt(0); 
    

    с

    var recordSelected = records[0]; //since you don't allow multiselect, 
               //records will always be an array 
               //of length 1. 
    
  2. Вы не можете просто проверить, если recordSelected == 1 потому что recordSelect является объектом ExtJS хранения некоторых данных в формате, заданном с помощью модели (которая создается на основе поля, предоставленные вами в магазине. то, что вы хотите проверить, является value из записи, которая может быть сделано путем замены

    if (recordSelected == 1) { 
    

    с

    if (recordSelected.get('value') === 1) { 
    

После того, как вы исправили обе эти вещи, ваш код должен работать, как вы ожидаете.

+0

Hi Towler, спасибо вам за помощь .. это сработало .. а также как я могу сделать 'select' в качестве значения по умолчанию для комбо. Я установил значение: 0, но не получилось :-( – sahithi

+0

Казалось, что это отлично работает для меня, когда у вас есть значение: 1 (см. http://jsfiddle.net/72Wk3/) – Towler