Ext中如何校验TextField的字段被修改了?
场景描述:
在form表单中有个sfzhm的字段,需要去后台进行sfzhm是否重复的校验,一开始使用了blur的event来去后台进行校验,后来发现在焦点离开时,及时数据没有发生变化,也会造成后台访问,造成大量的资源浪费,如何解决这个问题呢?
从官方的API中,查询可能解决此问题的属性或者事件:
- chagne事件
- dirtychange事件
- blur+focus事件:focus的时候记录原始值,blur离开的时候进行比较。
经过分析后,发现:
- change方法有问题:每次输入一个字符都会触发此事件,抛弃。
- dirtychange:官方文档希望达到的目的是,一旦跟原始时不一致时isDirty的值变成true。网络上很多人也是在用这个事件来进行校验,但是如果使用此属性要注意:
1.默认loadRecord会改变isDirty的值,如果想保持不变,需要在form中添加属性:trackResetOnLoad:true,
2.在一个页面中,修改一次后,isDirty的值变成true,后续无论怎么修改都不会再触发。(这样会造成漏判)。
- focus+blur的方法,能解决我的问题,见代码:
controlle中定义两个属性:
rybhOldValue : '',
sfzhmOldValue : '',
定义监控事件:
'#personWindow #rybh' : {
focus : this.handlerRybhFocus,
blur : this.handlerRybh,
// //dirtychange:this.handleRybhDirtyChange,
// change:this.handleRybhChange,
},
'#personWindow #sfzhm' : {
focus : this.handlerIDCardFocus,
blur : this.handlerIdCard
},
事件方法:
handlerRybhFocus : function(textField) {
this.rybhOldValue = textField.getValue();
},
// handleRybhDirtyChange : function(textField,isDirty){
// console.log("此时触发了dirtychange事件,此时idDirty的值为:"+isDirty);
// },
// handleRybhChange:function(textField, newValue, oldValue){
// console.log("此时触发了change事件,newValue='"+newValue+"',
// oldValue='"+oldValue+"'");
// },
handlerRybh : function(textField) {
if (textField.getValue() != this.rybhOldValue) {
}
}
希望有所帮助。
Ext中如何校验TextField的字段被修改了?的更多相关文章
- Oracle中已有数据的字段类型修改
创建测试表 create table t_person( id varchar2(200) primary key, name varchar2(200), address varchar2(200) ...
- Struts2中的校验框架
Struts2提供的客户端校验 尽管这种支持比较弱,但采用Struts2中的客户端校验时需要注意以下几点 1..将<s:form validate="true">的va ...
- Ext中renderer用法及参数
转载处:http://blog.csdn.net/yangxiaojun9238/article/details/8240139 setHeader是设置http恳求的头是MIME 和谈的拓展可以实现 ...
- 学习ASP.NET Core Razor 编程系列十二——在页面中增加校验
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
- Django中的ORM介绍,字段以及字段的参数。
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
- Ext中的get、getDom、getCmp、getBody、getDoc的区别
Ext中的get.getDom.getCmp.getBody.getDoc的区别Ext中包含了几个以get开头的方法,这些方法可以用来得到文档中DOM.得到当前文档中的组件.得到Ext元素等,在使用中 ...
- 删除数据表中除id外其他字段相同的冗余信息
删除一个信息表中除id外其他字段都相同的冗余信息,如下 id name addr 1 a b 2 a b 3 b c 删除这个表中的冗余信息 即应该是 id name addr 1 a b 3 b c ...
- SQL查询数据库中所有指定类型的字段名称和所在的表名
--查询数据库中所有指定类型的字段名称和所在的表名 --eg: 下面查的是当前数据库中 所有字段类型为 nvarchar(max) 的字段名和表名 SELECT cols.object_id , co ...
- alv中编辑的时候quan字段小数位数被截取掉
alv中编辑的时候quan字段小数位数被截取掉:位数太多(最大只能为 0) 解决方法: ls_fcat-fieldname = 'ZKBSL'. ls_fcat-coltext = '卡板数 ...
随机推荐
- 解决Access连接 accdb 不可识别的数据库格式异常
在Access07之前的数据库后缀名均为*.mdb 而连接字符串写成Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\myFolder\*.mdb ;Pe ...
- 打开新窗口(window.open) 用法
窗口名称:可选参数,被打开窗口的名称. 1.该名称由字母.数字和下划线字符组成. 2."_top"."_blank"."_selft"具有特 ...
- BM串匹配算法
串匹配算法最常用的情形是从一篇文档中查找指定文本.需要查找的文本叫做模式串,需要从中查找模式串的串暂且叫做查找串吧. BM算法好后缀规则 公式: 对于长度为m的模式串P,在i处失配时,模式串向前滑动的 ...
- Eclipse编码问题
通常在Eclipse下,mac和windows编码是不一样的.如果含有中文java sources通常会出现乱码. 解决---小程序! import java.io.File; import java ...
- 个人代码管理--svn
通常开发中遇到自己电脑和公司电脑代码共享的问题.比如一些通用的库,图片等项目中基本通用. 一些项目库如google code, github内地访问又挺困难的,常常无法连接,或者慢死..还有就是必须开 ...
- 程序员定制的中州韵(rime)windows版(小狼毫)微软双拼输入法
小狼毫所有的配置都是在用户文件夹下完成的 用户文件夹在win7的开始菜单的小狼毫文件夹中可以找到 所有设置希望生效须用小狼毫开始菜单中的重新部署来更新配置 -> weasel.custom.ya ...
- the usage of key word "static" in java language
---恢复内容开始--- 作用 有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象.通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的 ...
- Github上LeakCanary编译报错CreateProcess error=2的解决方法
现象说明: 从github上拉下LeakCanary编译时报错 CreateProcess error=2, ϵͳÕҲ»µ½ָ¶ 原因分析: 该现象是由于Windows中Gradle调用命令未加cmd ...
- 行转列求和:不加 in 条件,sum的数据会不会准确?
我的习惯写法,担心不加 in 条件 ,统计结果会包含其他的数据 SELECT ZWKMYE_KJND as 年度,ZWKMYE_KJQJ as 月份,ZWKMYE_DWBH as 单位, ' then ...
- oracle自定义job名字,job调度
一.调试创建 begin -- create_schedule dbms_scheduler.create_schedule(schedule_name => 's_change_send_da ...