如果名称中没有 [],ExtJS 组合框仅从 JSON 设置值

Posted

技术标签:

【中文标题】如果名称中没有 [],ExtJS 组合框仅从 JSON 设置值【英文标题】:ExtJS comboBox only sets value from JSON if no [] in name 【发布时间】:2011-08-20 13:07:11 【问题描述】:

在这里使用 ExtJS 3。我刚刚注意到(在回复我之前的问题时)只有当我不发送多个组合框名称时才会出现问题。我目前已经像name[] 这样设置了我的组合框的名称,因为我将发送一个值数组。如果我删除数组[],它可以工作,但我只能获取最后发送的组合框值。我的配置是用于多个选择目的的 SuperBoxSelect,但这也发生在我的组合框上:

new Ext.ux.form.SuperBoxSelect(
       store:storeForCompanies,
       fieldLabel:'CN',
       id:'companyField',
       displayField: 'company_name',
       valueField: 'id',
       name:'cn',
       hiddenName: 'company[]',
        typeAhead: true,
        mode: 'remote',
        minChars : 0,
        triggerAction: 'all',
        emptyText:'- Choose -',
        selectOnFocus:true,
        allowBlank:true,
       width: 350
)

我还有其他选择吗?

谢谢。

【问题讨论】:

请向我们展示您的组合框配置 稍微改变了事实。谢谢。 顺便说一句,我也尝试在表单加载之前加载组合框存储,但仍然没有设置值。 【参考方案1】:

我没有找到“开箱即用”的解决方案,因此我将一个成功处理程序附加到 form.load(),它将组合框的值设置为返回的 JSON 结果,如下所示:

success: function(form, action)

Ext.getCmp('companyField').setValue(action.result.data.company);

这样工作,不知道为什么我必须手动设置该组合框的值,我很高兴我在我的应用程序中“修复”了一个 2 天的问题,并且我愿意接受任何其他可以的建议指出我以正确的方式修复它。

谢谢。

【讨论】:

以上是关于如果名称中没有 [],ExtJS 组合框仅从 JSON 设置值的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery 验证器验证具有相同名称的多个文本框仅验证第一个输入

ExtJS组合框无法渲染

根据某些列获取数据集中被调用次数最多的名称

在 ExtJS 中获取组合框的值

在 extjs 中为组合框动态隐藏/显示触发器

来自本地数组的 ExtJs 组合框