[英]Extjs 6.0.1 TagField Uncaught Error with multiSelect: false
我有以下标记字段声明:
{
xtype: 'tagfield',
fieldLabel: 'Sex',
labelAlign: 'right',
name: 'sex',
multiSelect: false,
queryMode: 'local',
displayField: 'sexName',
valueField: 'sex',
allowBlank: false,
flex: 1,
editable: true,
growMax: 45,
store: Ext.create('Ext.data.Store', {
autoLoad: true,
fields: ['sexName', 'sex'],
data: [{
sexName: 'mail',
sex: 'mail'
},{
sexName: 'femail',
sex: 'femail'
}]
})
}
当我尝试将tagfield的值设置为组合框时,我希望它可以正常工作,但是在控制台中出现以下错误。
[E] Ext.form.field.ComboBox.doSetValue():无法向非multiSelect ComboBox添加值未捕获的错误:无法向非multiSelect ComboBox添加值
我究竟做错了什么?
谢谢你的帮助!
我们有类似的问题。 (尽管我们使用ExtJs 5)
我们需要组合使用自由文本输入,一次只能选择/输入一个值。 因此,我们使用TagField并将multiSelect
设置为false
。 它开始表现怪异,自由文本输入的可能性消失了。
我相信该解决方案将解决原始问题:
multiSelect
再次为true
change
事件,并将值更改为用户最后选择的值 使用问题中的代码示例:
{
xtype: 'tagfield',
fieldLabel: 'Sex',
labelAlign: 'right',
name: 'sex',
multiSelect: true,
queryMode: 'local',
displayField: 'sexName',
valueField: 'sex',
allowBlank: false,
flex: 1,
editable: true,
growMax: 45,
listeners: {
change: function (field, newValue ,oldValue ,eOpts) {
newValue = newValue.filter(function(el) {
return el !== oldValue[0];
});
this.setValue(newValue );
}
}
},
...
}
oldValue是一个仅包含一个元素(先前值)的数组。 newValue是一个包含两个元素的数组:先前值和新选择的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.