Extjs表单输入框异步校验的插件实现方法


Posted in Javascript onMarch 20, 2017

一、效果如图所示

特点:

1、异步后台校验不会对用户操作产生阻塞感;

2、可在用户停止输入后自动校验,避免频繁进行无谓的后台校验;

3、以插件方式实现,方便使用;

Extjs表单输入框异步校验的插件实现方法

二、插件源码如下:

/**
* Created by jiawenjun on 2016/10/19.
*/
Ext.define('Ext.ux.plugins.FieldAjaxVerify',{
extend: 'Ext.AbstractPlugin',

alias: 'plugin.fieldajaxverify',

buffer:500,

url:'',

timeout:1000,

connectionFailure:'服务器连接失败'

init:function(field){


var me=this;


var params=me.params;


field.enableKeyEvents=true;


field.on('keyup',Ext.Function.createBuffered(function(field,e){


var value=field.getValue();


if(Ext.isEmpty(value)){



return;


}


var params=field.up('form').getValues();


if(Ext.isFunction(me.getParams)){



params=me.getParams(field,value);


}
Ext.Ajax.request({
url:me.url,
method:"POST",
params:params,
timeout: me.timeout,
contentType: "application/json; charset=utf-8",
success:function(response){
var obj = Ext.JSON.decode(response.responseText);
if(obj.result["success"]===true){
field.setValidation(true);
field.validate();
}else{
field.setValidation(obj.result["message"]);
field.validate();
}
},
failure:function(response){
var result = Ext.JSON.decode(response.responseText);
field.setValidation(me.connectionFailure);
field.validate();
}
});
},me.buffer))
}
});

三、应用方式

{name:'equipmentLedgerCategoryName',fieldLabel:'分类名称' ,allowBlank:false ,afterLabelTextTpl :'
<span style="color:red;font-weight:bold" data-qtip="必填项">*</span>'
,plugins:{ptype: 'fieldajaxverify',url:'/service/uniquenessCheckName'}}

可用配置项:

1、buffer 毫秒数(在多少毫秒内用户没有输入操作则自动向后台发送验证请求

2、timeout ajax请求超时限制(毫秒数)

3、getParams(field,value) 自定义ajax参数内容

四、后台服务提供的数据格式

{
  "resultCode" : 0,
  "result" : {
    "message" : "分类名称重复",
    "success" : false
  },
  "msgId" : "41c2c52c-66d4-49c5-be52-0158e71cfe2c",
  "success" : true
}

备注:在Extjs5.1下测试通过,有其他个性化需求可参考此插件进行实现,谢谢。

以上所述是小编给大家介绍的Extjs表单输入框异步校验的插件实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
基于JQuery的模拟苹果桌面Dock效果(稳定版)
Oct 15 Javascript
js去字符串前后空格5种实现方法及比较
Apr 03 Javascript
jquery中map函数与each函数的区别实例介绍
Jun 23 Javascript
js 求时间差的实现代码
Apr 26 Javascript
BootStrap3学习笔记(一)之网格系统
May 20 Javascript
javascript中的深复制详解及实例分析
Dec 29 Javascript
JavaScript中的call和apply的用途以及区别
Jan 11 Javascript
vue实现文章内容过长点击阅读全文功能的实例
Dec 28 Javascript
JavaScript遍历数组和对象的元素简单操作示例
Jul 09 Javascript
微信小程序 腾讯地图显示偏差问题解决
Jul 27 Javascript
JavaScript数组去重实现方法小结
Jan 17 Javascript
jQuery实现移动端笔触canvas电子签名
May 21 jQuery
js实现鼠标拖动功能
Mar 20 #Javascript
基于vue2的table分页组件实现方法
Mar 20 #Javascript
详解Weex基于Vue2.0开发模板搭建
Mar 20 #Javascript
基于vue.js实现侧边菜单栏
Mar 20 #Javascript
微信小程序 参数传递实例代码
Mar 20 #Javascript
vue.js指令v-model使用方法
Mar 20 #Javascript
微信小程序中子页面向父页面传值实例详解
Mar 20 #Javascript
You might like
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
javascript实现校验文件上传控件实例
2015/04/20 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
JS 数组随机洗牌的实例代码
2018/09/12 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
js实现筛选功能
2020/11/24 Javascript
VUE实现吸底按钮
2021/03/04 Vue.js
Python遍历指定文件及文件夹的方法
2015/05/09 Python
python简单实现基数排序算法
2015/05/16 Python
Python实现二叉搜索树
2016/02/03 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
PyQt5实现简易计算器
2020/05/30 Python
python实现简易淘宝购物
2019/11/22 Python
python爬虫爬取监控教务系统的思路详解
2020/01/08 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
大学生求职简历的自我评价
2013/10/21 职场文书
成本会计岗位职责
2015/02/03 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
一行Python命令实现批量加水印
2022/04/07 Python
Java由浅入深通关抽象类与接口(下篇)
2022/04/26 Java/Android