Javascript Extjs5:组合框未显示所选值
我创建了一个组合框,当我选择一个值时,不会显示任何值Javascript Extjs5:组合框未显示所选值,javascript,extjs,combobox,Javascript,Extjs,Combobox,我创建了一个组合框,当我选择一个值时,不会显示任何值 Ext.create("Ext.form.field.ComboBox", { name: el.name, fieldLabel: el.labelId, hidden: !(el.visible), displayField:"value", valueField:"value", flex: 1, store:Ext.cre
Ext.create("Ext.form.field.ComboBox", {
name: el.name,
fieldLabel: el.labelId,
hidden: !(el.visible),
displayField:"value",
valueField:"value",
flex: 1,
store:Ext.create("Ext.data.Store",{
fields: ['key', 'value'],
data: [
{ key: "10",value: "etap 0"},
{ key: "200",value: "etape 1"},
{ key: "300", value: "etape 3"}
]
}),
regex: el.parameterType.regex,
regexText: el.regExErrMsg,
allowBlank: !el.mandatory,
blankText: el.requiredErrMsg
})
编辑
下面就是返回combo的方法:
drawField: function (el) {
var me = this;
var uiField = Ext.create(me.componentType, {
name: el.name,
fieldLabel: el.labelId,
hidden: !(el.visible),
flex: 1,
regex: el.parameterType.regex,
regexText: el.regExErrMsg,
allowBlank: !el.mandatory,
blankText: el.requiredErrMsg
});
if (el.parameterType.isCombo) {
uiField.displayField = 'value';
uiField.valueField = 'key';
uiField.editable = false;
uiField.store = Ext.create('Ext.data.Store', {
fields: ['key', 'value'],
data: el.parameterType.values
});
}
return uiField;
}
而el
参数是如下所示的JavaScript对象:
{
name: "",
labelId: "Champ :",
parameterType: {
regEx: "^.*$",
errID: "115",
isCombo: true,
values:[
{key: "10", value: "etap 0"},
{key: "200",value: "etape 1"},
{key: "300",value: "etape 3"},
],
selectedValue: "etap 0"
},
mandatory: false,
visible: true,
defaultValue: "",
elementType: "LIST_BOX",
regExErrMsg: "Valeur invalide.",
requiredErrMsg: ""
}
而运行时的
me.componentType
是Ext.form.field.ComboBoxvalueField:“value”是错误的,您应该指定valueField:“key”以便ComboBox正常工作这把小提琴对我来说很好,我删除了对el的引用,因为它对我来说是未定义的,还将Ext.data.store更改为Ext.data.store
如何选择值?我手动选择值如何手动选择值?web控制台中是否有错误?顺便说一句,store:
definition后缺少逗号组合在导航器中呈现为红色,我从显示的列表中选择一个值。选择后,该值不会显示在响应的javascript控制台中的组合No error中,但我不认为这是问题的原因。我试过了,但问题是,这里的代码与您的代码几乎相同。ComboBox应该使用数据存储中的ID来存储值,而不是项目的标题。这对我来说是不同的:(你能不能创建一个修改你的代码以便我们调试它,你有控制台错误吗?
Ext.application({
name: 'Fiddle',
launch: function() {
Ext.create("Ext.form.field.ComboBox", {
renderTo: Ext.getBody(),
displayField: "value",
valueField: "value",
flex: 1,
store: Ext.create("Ext.data.Store", {
fields: ['key', 'value'],
data: [{
key: "10",
value: "etap 0"
}, {
key: "200",
value: "etape 1"
}, {
key: "300",
value: "etape 3"
}]
})
});
}
});