ux.form.field.Verify 验证码控件
2016-06-18 10:24
369 查看
//验证码控件 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' }
相关文章推荐
- 把阅读平台从Acrobat转到Endnote
- 【bzoj 1051】[HAOI2006]受欢迎的牛(Tarjan缩点)
- 169. Majority Element
- CC2541(主UART)-CC2541(从UART)串口透传实验
- 1016. 部分A+B (15)
- 开源新闻速递:GitHub 重置受到影响的用户密码
- 七月算法机器学习笔记4--线性回归与逻辑回归
- 一步随心,一生无悔
- 使Eclipse下支持编写HTML/JS/CSS/JSP页面的自动提示
- thinkphp3.2【空操作和空控制器使用】
- 深入java集合学习系列-ConcurrentHashMap实现原理
- 互联网协议入门(二)
- VISTA、Win Server 2008、Win7 等系统音频系统底层API
- epoll
- 标准化互信息NMI的实现源码。
- 多线程笔记
- firefox 插件Tab Mix Plus配置截图
- nginx代理设置域名跳转/域名重定向
- @Autowired与@Resource的区别
- Listview使用BaseAdapter添加不同布局