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 相关文章推荐
FusionCharts图表显示双Y轴双(多)曲线
Nov 22 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
Jan 11 Javascript
跟我学习javascript的最新标准ES6
Nov 20 Javascript
Javascript中神奇的this
Jan 20 Javascript
jQuery弹出层插件popShow(改进版)用法示例
Jan 23 Javascript
jQuery实现大图轮播
Feb 13 Javascript
微信小程序 定位到当前城市实现实例代码
Feb 23 Javascript
jQuery表格(Table)基本操作实例分析
Mar 10 Javascript
vue.js轮播图组件使用方法详解
Jul 03 Javascript
浅谈vue引用静态资源需要注意的事项
Sep 28 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
Jun 21 Javascript
vue自定义右键菜单之全局实现
Apr 09 Vue.js
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/09/14 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
JavaScript中的Array对象使用说明
2011/01/17 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
2020/11/02 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
Python 多线程的实例详解
2017/09/07 Python
python按比例随机切分数据的实现
2019/07/11 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
python中round函数如何使用
2020/06/19 Python
使用CSS3的appearance属性改变任何元素的浏览器默认风格
2012/12/24 HTML / CSS
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
SQL面试题
2013/12/09 面试题
天鹅的故事教学反思
2014/02/04 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
党员先进事迹材料
2014/12/19 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
公司保密管理制度
2015/08/04 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
Python装饰器的练习题
2021/11/23 Python
Python基本的内置数据类型及使用方法
2022/04/13 Python