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 相关文章推荐
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
Jul 11 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
Oct 11 Javascript
JQuery的read函数与js的onload不同方式实现
Mar 18 Javascript
浅谈js 闭包引起的内存泄露问题
Jun 22 Javascript
浅析Node.js 中 Stream API 的使用
Oct 23 Javascript
基于JS代码实现导航条弹出式悬浮菜单
Jun 17 Javascript
jQuery插件DataTables分页开发心得体会
Aug 22 jQuery
浅谈 vue 中的 watcher
Dec 04 Javascript
vue axios 表单提交上传图片的实例
Mar 16 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
Aug 27 Javascript
小程序如何获取多个formId实现详解
Sep 20 Javascript
Ajax实现页面无刷新留言效果
Mar 24 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实现的下载远程图片自定义函数分享
2015/01/28 PHP
php简单图像创建入门实例
2015/06/10 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
超级强大的表单验证
2006/06/26 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
下拉菜单点击实现连接跳转功能的js代码
2013/05/19 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
AngularJS的$location使用方法详解
2017/10/19 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
父母对孩子说的话
2014/04/12 职场文书
卫生系统先进事迹
2014/05/13 职场文书
优秀班组长事迹
2014/05/31 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
暑假安全保证书
2015/02/28 职场文书
土建技术员岗位职责
2015/04/11 职场文书
生产设备维护保养制度
2015/08/06 职场文书
创业计划书介绍
2019/04/24 职场文书
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript