ExtJS Combo 默认值返回 null
Posted
技术标签:
【中文标题】ExtJS Combo 默认值返回 null【英文标题】:ExtJS Combo default value returned null 【发布时间】:2016-09-16 06:25:24 【问题描述】:我在我的应用程序中设置了一个 ComboBox。 Combo 有emptyText
和我设置的默认值。
我希望保留“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());
);
上面是测试代码,你能告诉我为什么在我选择7AM
时会提示null
吗?
【问题讨论】:
请您发布您如何提交组合详细信息的代码? 你可以查看上面的代码。当您选择早上 7 点时,它会提醒您为空 我已经在 ExtJS 4 中运行了这段代码,但我没有得到空值。首先 7AM 已经被选中,所以即使你选择 7AM ,它也不会触发事件。当我选择其他数字时,我得到了适当的价值。然后我再次选择 7AM,我得到 7 作为警报值。 哦。我在页面上的代码编辑器上对此进行了测试 - docs.sencha.com/extjs/4.0.7/#!/api/Ext.form.field.ComboBox 创建了一个小提琴fiddle.sencha.com/#fiddle/1gtb 【参考方案1】:// 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");
);
【讨论】:
【参考方案2】:您的示例似乎还可以。 所以你的问题一定出在其他地方,而不是组合本身。
1- 检查您的应用程序的控制台是否没有错误。
2- 检查商店的价值时是否已加载。
3- 检查在渲染后是否没有事件改变组合值。
【讨论】:
以上是关于ExtJS Combo 默认值返回 null的主要内容,如果未能解决你的问题,请参考以下文章
Extjs Combo - 如何使用 GetForm().load 将值加载到组合