2016-09-16 1 views
0

Я создал ComboBox в своем приложении. Combo имеет emptyText и значение по умолчанию, которое я установил.ExtJS Combo значение по умолчанию возвращено null

Я хочу сохранить текст «7AM» и «7» в качестве значения по умолчанию. но когда я пытаюсь отправить страницу, выбрав «7AM», возвращается значение null.

// The data store containing the list of states 
var states = Ext.create('Ext.data.Store', { 
    fields : [ 
     'id', 
     'text' 
    ], 
    data: [ 
     { 
      'id':'3', 
      'text':'3AM' 
     }, 
     { 
      'id':'4', 
      'text':'4AM' 
     }, 
     { 
      'id':'5', 
      'text':'5AM' 
     }, 
     { 
      'id':'6', 
      'text':'6AM' 
     }, 
     { 
      'id':'7', 
      'text':'7AM' 
     } 
    ] 
}); 

// Create the combo box, attached to the states data store 
Ext.create('Ext.form.ComboBox', { 
    fieldLabel: 'Choose State', 
    store: states, 
    queryMode: 'local', 
    displayField: 'text', 
    valueField: 'id', 
    emptyText: '7AM', 
    value: '7', 
    renderTo: Ext.getBody(), 
    listeners: { 
     'select': function(cbo){ 
      alert(cbo.getValue()); 
     } 
    } 
}); 

Выше тестовый код, вы можете посоветовать, почему null предупреждается, когда я выбираю 7AM?

+1

Вы отправляете код о том, как вы отправляете данные комбо? – Saloo

+0

Вы можете проверить код выше. Он будет предупреждать вас, когда вы выберете 7AM –

+0

Я запустил этот код в ExtJS 4, и я не получаю null. Прежде всего 7AM уже выбран, поэтому, даже если вы выберете 7AM, он не будет запускать событие. Когда я выбираю какой-то другой номер, я получаю правильное значение. Затем я снова выбираю 7AM, я получаю 7 в качестве предупреждающего значения. – Saloo

ответ

0
// The data store containing the list of states 
var states = Ext.create('Ext.data.Store', { 
    fields : ['id', 'text'], 
    data: [{'id':'3','text':'3AM'}, {'id':'4','text':'4AM'}, {'id':'5','text':'5AM'},{'id':'6','text':'6AM'},{'id':'7','text':'7AM'}] 
}); 

// Create the combo box, attached to the states data store 
Ext.create('Ext.form.ComboBox', { 
    fieldLabel: 'Choose State', 
    store: states, 
    itemId: 'combo', 
    queryMode: 'local', 
    displayField: 'text', 
    valueField: 'id', 
    //emptyText: '7AM', 
    //value: '7', 
    renderTo: Ext.getBody(), 
    listeners: { 
     'select': function(cbo){ 
      alert(cbo.getValue()); 
     }, 
     'afterrender': function(cbo) { 
      cbo.setValue("7"); 
     } 
    } 
}); 
0

Ваш пример кажется ОК. Итак, ваша проблема должна быть где-то в другом месте, а не в самой комбо.

1- Проверьте, нет ли ошибки в консоли в приложении.

2- Проверьте, загружен ли магазин, когда вы проверяете его значение.

3- Проверьте, нет ли события, изменяющего значение комбо после его визуализации.

Смежные вопросы