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 相关文章推荐
改进:论坛UBB代码自动插入方式
Dec 22 Javascript
JavaScript Event学习第五章 高级事件注册模型
Feb 07 Javascript
jquery validation插件表单验证的一个例子
Mar 03 Javascript
简单实用的js调试logger组件实现代码
Nov 20 Javascript
js的一些常用方法小结
Jun 29 Javascript
jquery批量控制form禁用的代码
Aug 06 Javascript
JavaScript限定复选框的选择个数示例代码
Aug 25 Javascript
JavaScript通过字典进行字符串翻译转换的方法
Mar 19 Javascript
JavaScript中指定函数名称的相关方法
Jun 04 Javascript
ES6新特性之解构、参数、模块和记号用法示例
Apr 01 Javascript
Angularjs自定义指令实现分页插件(DEMO)
Sep 16 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
Jul 20 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 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
获取URL文件名后缀
2013/10/24 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
2019/04/15 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
checkbox使用示例
2013/08/23 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
jQuery的deferred对象使用详解
2016/09/25 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
javascript简易画板开发
2020/04/12 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
理解Python中函数的参数
2015/04/27 Python
如何在Python中编写并发程序
2016/02/27 Python
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
python 实现任务管理清单案例
2020/04/25 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
销售人员个人求职信
2013/09/26 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
公司聚餐通知
2015/04/22 职场文书