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 表单之间的数据传递代码
Dec 04 Javascript
jQuery中filter()和find()的区别深入了解
Sep 25 Javascript
js中prototype用法详细介绍
Nov 14 Javascript
DOM基础教程之使用DOM设置文本框
Jan 20 Javascript
jfinal与bootstrap的登录跳转实战演习
Sep 22 Javascript
jQuery插件artDialog.js使用与关闭方法示例
Oct 09 jQuery
vue+webpack模拟后台数据的示例代码
Jul 26 Javascript
Vue实现左右菜单联动实现代码
Aug 12 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
Apr 14 Javascript
微信小程序进入广告实现代码实例
Sep 19 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
Apr 11 Javascript
React forwardRef的使用方法及注意点
Jun 13 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的FTP学习(一)
2006/10/09 PHP
实用函数8
2007/11/08 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
客户端js性能优化小技巧整理
2013/11/05 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
javascript日期格式化方法汇总
2015/10/04 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
[16:21]教你分分钟做大人:圣堂刺客
2014/12/03 DOTA
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
Python之日期与时间处理模块(date和datetime)
2017/02/16 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
python 三元运算符使用解析
2019/09/16 Python
使用python去除图片白色像素的实例
2019/12/12 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
使用Html5多媒体实现微信语音功能
2019/07/26 HTML / CSS
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
思想品德自我鉴定
2013/10/12 职场文书
毕业生个人的求职信范文
2013/12/03 职场文书
集团公司总经理岗位职责
2013/12/20 职场文书
合作协议书模板2014
2014/09/26 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
素质教育培训心得体会
2016/01/19 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript