0

我正在使用 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 ); }
    }); 
4

0 回答 0