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 相关文章推荐
jQuery生成asp.net服务器控件的代码
Feb 04 Javascript
js数组的操作详解
Mar 27 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
Oct 24 Javascript
ie8下修改input的type属性报错的解决方法
Sep 16 Javascript
JavaScript限定图片显示大小的方法
Mar 11 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
Jan 27 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
May 25 Javascript
localStorage的黑科技-js和css缓存机制
Feb 06 Javascript
使用vux实现上拉刷新功能遇到的坑
Feb 08 Javascript
vue element table 表格请求后台排序的方法
Sep 28 Javascript
Vue结合后台导入导出Excel问题详解
Feb 19 Javascript
element-ui组件中input等的change事件中传递自定义参数
May 22 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
打造计数器DIY三步曲(下)
2006/10/09 PHP
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
php实现约瑟夫问题的方法小结
2015/03/23 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
JS中使用media实现响应式布局
2017/08/04 Javascript
微信小程序实现表单校验功能
2020/03/30 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
24个canvas基础知识小结
2014/12/17 HTML / CSS
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
毕业设计答辩开场白
2015/05/29 职场文书
老乡会致辞
2015/07/28 职场文书
2015团员个人年度总结
2015/11/24 职场文书
2016关于军训的心得体会
2016/01/11 职场文书