码迷,mamicode.com
首页 > 其他好文 > 详细

ext4 form loadrecord disable validate

时间:2014-05-13 03:33:03      阅读:340      评论:0      收藏:0      [点我收藏+]

标签:ext4


ext版本:4.2


需求:

   在数据record绑定到form的时候,Ext会触发field的change事件和validate事件。以至于,新建的空表单界面,会出现验证不通过的样式,如下图:

bubuko.com,布布扣


解决思路:

   在form loadRecord之前,禁止field的change()事件,loadRecord之后,开启field的change()事件。loadRecord方法会调用basicForm的setValues()方法,所以,重写setValues()方法,如下:

Ext.override(Ext.form.BasicForm, {
    setValues: function (values) {
        var me = this,hasChanged = me.owner.hasChanged,
            v, vLen, val, field;
        function setVal(fieldId, val) {
            var field = me.findField(fieldId);
            if (field) {
                /** form加载数据的时候不验证*/
                if (hasChanged) {
                    var d = field.disabled;
                    field.disabled = true;
                    field.setValue(val);
                    field.disabled = d;
                } else {
                    field.setValue(val);
                }
                if (me.trackResetOnLoad) {
                    field.resetOriginalValue();
                }
            }
        }
        Ext.suspendLayouts();
        if (Ext.isArray(values)) {
            vLen = values.length;
            for (v = 0; v < vLen; v++) {
                val = values[v];
                setVal(val.id, val.value);
            }
        } else {
            Ext.iterate(values, setVal);
        }
        Ext.resumeLayouts(true);
        return this;
    }
});


在项目代码中,调用如下:

infoForm.hasChanged = true;
infoForm.loadRecord(record);
infoForm.hasChanged = false;




本文出自 “技术人生” 博客,请务必保留此出处http://wangyuelucky.blog.51cto.com/1011508/1409834

ext4 form loadrecord disable validate,布布扣,bubuko.com

ext4 form loadrecord disable validate

标签:ext4

原文地址:http://wangyuelucky.blog.51cto.com/1011508/1409834

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!