以 extjs 形式获取禁用的值

Oli*_*ins 0 forms extjs extjs4.2

如果我在 extjs 中有一个表单,我可以使用它获取数据

var values = form.getValues();
Run Code Online (Sandbox Code Playgroud)

不幸的是,这只返回启用的字段。我也有禁用的字段。例如,我有一个禁用的 ID 字段,因为显然您不想修改 ID。所以 getValues() 方法在 IMO 中非常无用。

还有 getRecord().data 为我提供了表单中的所有值。

form.getRecord().data
Run Code Online (Sandbox Code Playgroud)

伟大的!但是所有的数据都是数据外的,它不反映表单中所做的修改。

我也查看了getFieldValues(),但同样只给了我启用的字段的值。

有没有什么方法可以让我完全按照屏幕上的形式提供所有数据?还是我必须写一个巨大的黑客来给自己这个功能?

小智 5

将字段设置为只读而不是禁用。

或者使用组件查询执行此操作:

var form = formpnl.getForm();
var disableditems = formpnl.query('[disabled=true]');
Ext.each(disableditems, function(item) { item.enable(); });
var values = form.getValues();
Ext.each(disableditems, function(item) { item.disable(); });
console.log(values);
Run Code Online (Sandbox Code Playgroud)