Ext.form.Basic当trackResetOnLoad为true时如何重置字段?

时间:2013-01-31 10:15:49

标签: forms extjs extjs4

我使用trackResetOnLoad Ext.form.Basic配置获得:true

当我在字段上调用reset()时,它会从setValues()形式的方式获取其值 如何立即重置字段?
当我只是field.setValue('')时,表单将其标记为无效,因为该字段是必需的。

提前致谢。

2 个答案:

答案 0 :(得分:6)

您必须手动重置所有originValues所有字段(以及其他一些字段)

此剪辑将执行此操作

var items = form.getForm().getFields().items,
    i = 0,
    len = items.length;
for(; i < len; i++) {
    var c = items[i];
    c.value = '';
    if(c.mixins && c.mixins.field && typeof c.mixins.field['initValue'] == 'function'){
        c.mixins.field.initValue.apply(c);
        c.wasDirty = false;
    }
}

<强> working example

答案 1 :(得分:0)

对我来说有用的是在使用var originalValues = myForm.getFieldValues();之类的内容创建表单后获取值的副本,然后我可以使用myForm.setValues(originalValues);恢复这些值,而不是调用myForm.reset(...);