ext4 form loadrecord disable validate

ext版本:4.2

需求:

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

解决思路:

在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;

ext4 form loadrecord disable validate

时间: 2024-08-23 23:09:42

ext4 form loadrecord disable validate的相关文章

Oracle -&gt;&gt; ENABLE VALIDATE &amp; DISABLE VALIDATE

这里找到一篇博文对这两个用法的解释:http://www.cnblogs.com/rootq/archive/2008/09/23/1297400.html 启用约束: enable( validate) :启用约束,创建索引,对已有及新加入的数据执行约束. e enable novalidate :启用约束,创建索引,仅对新加入的数据强制执行约束,而不管表中的现有数据. 禁用约束: disable( novalidate):关闭约束,删除索引,可以对约束列的数据进行修改等操作. disable

Jquery.Form和jquery.validate 的使用

有些功能需要我们利用Ajax技术进行POST提交表单,这时候就需要用到jquery.Form ,它有两种方式进行提交,AjaxForm和AjaxSubmit方式.            AjaxForm 方式必须先绑定表单,它一般在$(document).ready(function () {}里定义,它能让表单不刷新页面的情况下POST到目标. 如:                     $(document).ready(function () {                   $(

[Form Builder]Form中的validate验证事件

转:http://yedward.net/?id=70 Form的validate行为可以由一个总的form级别的validation属性来控制,可以通过set_form_property来设置成PROPERTY_TRUE 和 PROPERTY_FALSE.当程序的焦点离开当前validation_unit(验证单元)时候,就会触发该validation_unit的validate事件,Validation unit的级别又是通过form的validation unit属性来设置的,有以下属性值

jquery.validate+jquery.form提交的三种方式

原文:http://www.cnblogs.com/datoubaba/archive/2012/06/06/2538873.html jquery.validate+jquery.form提交的三种方式 概述:本篇主要讨论jquery.validate结合jquery.form实现对表单的验证和提交方案. 方式一:是通过jquery.validate的submitHandler选项,即当表单通过验证时运行回调函数.在这个回调函数中通过jquery.form来提交表单: 方式二:是通过jquer

Ext4 MVC CRUD操作

项目目录结构如下: (1)index.html <!DOCTYPE html> <html> <head> <title>用户管理</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel=&q

JS验证控件jQuery Validate

jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API. 实现步骤如下: step1:在body标签中增加一个表单标签 <form id="login_form" action="login.action" method="post"> <

ExtJS(7)- Form技巧

一.基础的Form表单 首先Form是一个容器,可用于存放展示各种组件,form中提供了对form中组件的校验,与数据获取等方法来方便form操作. 二.Form的布局 layout: {     type: 'table',     columns: 2 } form中推荐一般用table的方式来布局 三.Form的验证与提交 form提交以前都要经过验证, if(me.form.isValid()){     var obj = me.form.getFieldValues();     /

Extjs Form用法详解(适用于Extjs5)

Extjs Form是一个比较常用的控件,主要用来显示和编辑数据的,今天这篇文章将介绍Extjs Form控件的详细用法,包括创建Form.添加子项.加载和更新数据.验证等. 本文的示例代码适用于Extjs 4.x和Extjs 5.x,在Extjs 4.2.1 和Extjs 5.0.1中亲测可用! 本文由齐飞([email protected])原创,并发布在http://www.qeefee.com/article/extjs-form-in-detail,转载请注明出处!推荐更多Extjs教

validate自定义验证,进行小数点后2位小数的验证(完美)

1.进行form表单提交(咱们这个表单提交的是数字) <form action="" method="post" id="form" target="_blank"> <input class="form-control" type="text" id="cash" name="cash"> <button type=