以extjs形式获取禁用值

时间:2014-10-23 13:39:19

标签: forms extjs extjs4.2

如果我在extjs中有一个表单,我可以使用此

获取数据
var values = form.getValues();

不幸的是,这仅返回已启用的字段。我也有禁用的字段。例如,我有一个禁用的ID字段,因为很明显你不想修改ID。所以getValues()方法是非常无用的IMO。

还有getRecord()。data,它给出了表格中的所有值。

form.getRecord().data

大!但是所有数据都不是数据,也没有反映出表格中的修改。

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

是否有任何方法可以在屏幕上显示表格中的所有数据?或者我是否必须写一个巨大的黑客来给自己这个功能?

2 个答案:

答案 0 :(得分:4)

将字段设置为readOnly而不是disabled。

或者使用组件Query:

执行此操作
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);

答案 1 :(得分:1)

如果要模拟禁用的字段,可以使用以下CSS类:

.textFieldDisabled .x-form-text {
    background-color: #B1B2B4;
    background-image: none;
}

并在您的视图标记中显示:

{
    xtype: 'textfield',
    fieldLabel: 'User ID',
    name: 'UserID',
    readOnly: true,
    cls: 'textFieldDisabled '
}

getValues()将返回此字段的值,并且它将对用户显示为禁用状态。