Ext.form.Basic 如何在 trackResetOnLoad true 时重置字段



我得到了一个trackResetOnLoad :true配置的Ext.form.Basic

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

提前谢谢。

您必须

手动重置所有字段(以及其他一些字段)的所有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;
    }
}

工作示例

对我有用的方法是在创建表单后立即使用类似 var originalValues = myForm.getFieldValues(); 的东西复制值,然后我以后可以使用 myForm.setValues(originalValues); 恢复这些值,而不是调用myForm.reset(...);

最新更新