gpt4 book ai didi

javascript - 在 ExtJS 中,getForm().load() 加载组合字段值吗?

转载 作者:行者123 更新时间:2023-11-30 06:05:04 25 4
gpt4 key购买 nike

我有一个带有组合框的表单。组合框通过 Json 存储加载它的数据,我使用 form.getForm().load( url: 'URL') 也从 Json 存储加载表单数据。

当数据加载到表单中时,我可以通过 Firebug 看到它收到了正确的值,然后组合显示正确的相应显示值。当我在 FireBug 中查看 hiddenField 的 HTML 时,它说的是 value="DISPLAYVALUE"而不是 value="VALUE"。然后,当我从组合中选择任何值时,它会更改为正确的值 ="VALUE"。

当然,如果用户从不更改组合,则会提交错误的值。这是设计/限制还是我遗漏了什么。

我真的需要在执行 getForm().load() 之前加载和验证每个组合的数据吗? load() 仅加载完整数据是否有意义,即使这意味着从商店加载数据?

我提供了存在问题的简化示例代码。

    Ext.onReady(function(){

var frmClientRecord = {
xtype: 'form',
items: [
{
fieldLabel: 'Advisor',
xtype: 'combo',
id: 'advisorName',
displayField: 'Advisor',
valueField: 'advisorId',
hiddenName: 'advisorsId',
mode: 'remote',
store: new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({
url: '/referrals/index.php/advisors/read',
method: 'POST'
}),
reader: new Ext.data.JsonReader({
root: 'results',
fields: [
{name: 'advisorId'},
{name: 'Advisor'}
]
})
})
}
]
}

frmClientRecordCmp = new Ext.FormPanel(Ext.apply(frmClientRecord));


frmClientRecordCmp.getForm().load({
url: '/referrals/index.php/clients/getbyid/100',
})

frmClientRecordCmp.render(document.body);
});

组合的 JSON

({"results":[{"Advisor":"Chris","advisorId":33},{"Advisor":"Fawzia","advisorId":2},{"Advisor":"Kent","advisorId":3},{"Advisor":"Rob","advisorId":4},{"Advisor":"Stephanie","advisorId":5}]})

表单的 JSON

{success: true, data: {"advisorsId":33}}

最佳答案

如果您的表单加载之前组合商店加载,则可能会发生这种情况。 (鉴于您的其余代码看起来不错)

我怀疑如果您在加载表单之前先渲染表单,这个问题就会解决。
(将 frmClientRecordCmp.render(document.body); 在示例代码中向上移动一个语句)

编辑
需要考虑两点-

  1. 确定组合商店在表单加载之前完成加载了吗?
  2. 查看 ComboBox's valueField文档,看起来在加载表单后可能需要调用 combo.setValue。类似于-

    frmClientRecordCmp.getForm().load({ 网址:'/referrals/index.php/clients/getbyid/100', 成功:功能(形式,行动){ form.findField('advisorName').setValue(action.result.data.advisorId); }});

关于javascript - 在 ExtJS 中,getForm().load() 加载组合字段值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5540295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com