ux.form.field.Verify 验证码控件
//验证码控件
Ext.define('ux.form.field.Verify', {
extend: 'Ext.container.Container',
alias: ['widget.fieldVerify'],
requires: ['Ext.Img', 'Ext.form.field.Text'],
layout: {
type: 'hbox',
align: 'stretch'
},
config: {
//文本框内刷新按钮
refresh: false,
//文本框
textfield: {
hideLabel: true,
emptyText: '请输入验证码'
},
//图片
img: {
flex: 1,
height: 53,
margin: '0 0 0 2',
alt: '点击刷新'
}
},
//初始化
initComponent: function () {
var me = this;
me.callParent(arguments);
//新增
me.add([me.getTextfield(), me.getImg()]);
},
//创建文本框
applyTextfield: function (config) {
return Ext.factory(config, Ext.form.field.Text, this.getTextfield());
},
//创建图片
applyImg: function (config) {
return Ext.factory(config, Ext.Img, this.getImg());
},
//更新图片
updateImg: function (newItem, oldItem) {
if (newItem) {
//隐藏就不显示验证码
if (!this.isHidden()) {
newItem.setSrc(this.codeImgUrl);
}
newItem.on({
scope: this,
click : {
element : 'el',
fn :'onRefreshImg'
}
});
}
},
//更新文本框内置按钮
updateRefresh: function (newItem, oldItem) {
if (newItem) {
var textfield = this.getTextfield();
newItem.handler = 'onRefreshImg';
newItem.scope = this;
textfield.setTriggers({ refresh: newItem});
}
},
setHidden: function (value) {
var me = this,
allowBlank = true,
back;
back = me.callParent(arguments);
if (!value) {
me.onRefreshImg();
allowBlank = false;
}
me.getTextfield().setAllowBlank(allowBlank);
return back;
},
//刷新验证码
onRefreshImg: function () {
if (!this.isHidden()) {
var img = this.getImg();
img.setSrc(this.codeImgUrl + '?time=' + new Date().getTime());
}
}
});
相关sass:
.password-trigger,
.auth-email-trigger,
.auth-password-trigger,
.auth-envelope-trigger {
&:before {
top: 10px;
left: -18px;
position: relative;
color: $dialog-trigger-color;
font-size: 30px;
} &.password-trigger:before,
&.auth-password-trigger:before {
content: "\f023";
} &.auth-email-trigger:before {
content: "\f007";
} &.auth-envelope-trigger:before {
content: "\f0e0";
}
}
用法:
xtype: 'fieldVerify',
//验证码地址
codeImgUrl: config.codeImg,
//文本框配置
textfield: {
name: 'captcha',
msgTarget: 'qtip'
},
//文本框内置按钮
refresh: {
cls: 'auth-envelope-trigger fa-refresh'
}
ux.form.field.Verify 验证码控件的更多相关文章
- ux.form.field.GridDate 支持快速选择日期的日期控件
效果如图,亲测6.2.1版本可用 /** *支持快速选择日期的日期控件 */ Ext.define('ux.form.field.GridDate', { extend: 'Ext.form.fiel ...
- ux.form.field.KindEditor 所见所得编辑器
注意需要引入KindEditor相关资源 //所见所得编辑器 Ext.define('ux.form.field.KindEditor', { extend: 'Ext.form.field.Text ...
- ux.form.field.SearchField 列表、树形菜单查询扩展
//支持bind绑定store //列表搜索扩展,支持本地查询 //支持树形菜单本地一级菜单查询 Ext.define('ux.form.field.SearchField', { extend: ' ...
- ux.form.field.Year 只能选年的时间扩展
效果如图,亲测6.2.1版本可用,用法同时间选择控件 //只选择年的控件 Ext.define('ux.picker.Year', { extend: 'Ext.Component', alias: ...
- ux.form.field.Month 只能选年、月的时间扩展
效果如图,亲测6.2.1版本可用,用法同时间选择控件 //月弹窗扩展 //只选月 Ext.define('ux.picker.Month', { extend: 'Ext.picker.Month', ...
- ux.form.field.Password 密码与非密码状态切换
效果如图: 扩展源码: //扩展 //密码按钮扩展 //支持在密码与非密码之间切换 Ext.define('ux.form.field.Password', { extend: 'Ext.form.f ...
- ux.form.field.TreePicker 扩展,修复火狐不能展开bug
/** * A Picker field that contains a tree panel on its popup, enabling selection of tree nodes. * 动态 ...
- Extjs4 关于设置form中所有子控件为readOnly属性的解决方案
之前在网上找了一堆,但那些确实没法用,后来考虑了一下,发现主要是网上提供的假设form中只有一层控件,没有考虑到布局稍微复杂的form情形,此处采用递归的形式实现对form中所有控件(grid及but ...
- Android 短信验证码控件
Android 短信验证码控件,便于项目中使用统一样式,统一提示改动.个人觉得挺好用的 <span style="font-size:18px;">public cla ...
随机推荐
- [ACM_搜索] POJ 1096 Space Station Shielding (搜索 + 洪泛算法Flood_Fill)
Description Roger Wilco is in charge of the design of a low orbiting space station for the planet Ma ...
- Atitit.javascript 实现类的方式原理大总结
Atitit.javascript 实现类的方式原理大总结 1. 实现类的式::构造方法方式:原型方式:构造方法+原型的混合方式 1 2. 原型方式(function mode)经典式..实现属性推荐 ...
- main方法中声明8种基本数据类型的变量并赋值
main方法中声明8种基本数据类型的变量并赋值 char→ int→ long→ float→ double byte→ short→
- 详解Bootstrap面板组件
面板组件主要作用是用来处理一些其他组件无法完成的功能,在不同的版本中具有不同的源码: LESS:panels.less SASS:_panels.scss 基础面板非常简单,就是一个div容器中运用了 ...
- js 停止事件冒泡 阻止浏览器的默认行为(阻止超连接 # )
在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”. 1..停止事件冒泡 JavaScript代码 //如果提供了事件对象,则这是一个非IE浏览器if ( ...
- ASP.NET Web API的安全管道
本篇体验ASP.NET Web API的安全管道.这里的安全管道是指在请求和响应过程中所经历的各个组件或进程,比如有IIS,HttpModule,OWIN,WebAPI,等等.在这个管道中大致分两个阶 ...
- Spring MVC+Quartz 定时任务持久化
请自行参考: http://sloanseaman.com/wordpress/2011/06/06/spring-and-quartz-and-persistence/ https://object ...
- [leetcode]Find Minimum in Rotated Sorted Array II @ Python
原题地址:https://oj.leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/ 解题思路:这道题和上一道题的区别是,数组中 ...
- Codeforces Beta Round #62 题解【ABCD】
Codeforces Beta Round #62 A Irrational problem 题意 f(x) = x mod p1 mod p2 mod p3 mod p4 问你[a,b]中有多少个数 ...
- asp Gridview绑定形式获取行号
Gridview中使用<%# Container.DataItemIndex %>取得当前行的序号 而在Repeater控件中使用Container.ItemIndex取得当前行的序号 & ...