我正在使用extjs 3.4.0。
如果我只需要能够从列表中选择项目,或者我还希望它能够提交任意文本,我试图弄清楚组合框是如何不同的。
看起来forceSelection:true / false是这里的键配置选项,使用forceSelection:true只能从下拉菜单中选择一个项目,使用forceSelection:false,应该能够键入任意文本。
查询服务器并获得带有匹配选项的下拉菜单效果很好,但我无法提交我的任意文本(不在下拉菜单中)。如果我只是输入提交的查询,但是如果没有任何匹配,那么按Enter键即使我希望Enter会发送请求也没有发生,类似于在搜索匹配时如何发送请求。
我是否需要将组合框放在Form实例中才能提交任意文本?这会感觉很奇怪,因为组合框完全能够在搜索匹配时发送请求。
的更新 :
这是我的实际代码:
var store = new Ext.data.JsonStore({
url: '/store',
root: 'items',
totalProperty: 'count',
fields: Ext.data.Record.create( [ 'name', 'id' ] ),
id: 'id' });
var combo = new Ext.form.ComboBox({
store: store,
forceSelection: false,
typeAhead: true,
loadingText: '',
width: 170,
hideTrigger: true,
itemSelector: 'div.item',
applyTo: 'div.box',
queryParam: 'tx',
hiddenValue: 'something',
name: 'name',
displayField: 'name',
submitValue: true,
allowBlank: false,
onSelect: function( record ) { alert( record.data.name ); }
});