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 相关文章推荐
javascript实现 在光标处插入指定内容
May 25 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
Jan 20 Javascript
JavaScript实现的石头剪刀布游戏源码分享
Aug 22 Javascript
加载列表时jquery获取ul中第一个li的属性
Nov 02 Javascript
jQuery数据缓存用法分析
Feb 20 Javascript
Angular2 Service实现简单音乐播放器服务
Feb 24 Javascript
微信小程序本地缓存数据增删改查实例详解
May 24 Javascript
Angular整合zTree的示例代码
Jan 24 Javascript
利用js实现前后台传送Json的示例代码
Mar 29 Javascript
基于layui数据表格以及传数据的方式
Aug 19 Javascript
python实现迭代法求方程组的根过程解析
Nov 25 Javascript
深入理解Antd-Select组件的用法
Feb 25 Javascript
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的ob_start();控制您的浏览器cache!
2007/02/14 PHP
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
探讨php define()函数及defined()函数使用详解
2013/06/09 PHP
使用php判断网页是否gzip压缩
2013/06/25 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
2014/01/13 Javascript
readonly和disabled属性的区别
2015/07/26 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
python判断字符串是否包含子字符串的方法
2015/03/24 Python
使用python绘制常用的图表
2016/08/27 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
2014法制宣传日活动总结范文
2014/11/01 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
2015年端午节活动总结
2015/02/11 职场文书
应届毕业生自荐信
2015/03/04 职场文书
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android
Python利用FlashText算法实现替换字符串
2022/03/31 Python
3050和2060哪个好 性能差多少 差距有多大 谁更有性价比
2022/06/17 数码科技
postgresql中如何执行sql文件
2023/05/08 PostgreSQL