extjs 框架是一个非常优秀的前端框架,提供了丰富的功能与炫丽的界面展示,在用 extjs 创建表单时,特别是在注册或修改密码的时候,要对密码进行确认,这里就密码确认一致性验证和大家分享自己的心得与体会。

方法一:主要代码如下

 <script type='text/javascritp>
// 自定义样式
var required = '<span style="color:red;font-weight:bold" data-qtip="Required">*</span>'; // 定义函数: 验证再次输入的密码是否一致
Ext.apply(Ext.form.VTypes, {
confirmPwd: function (value, field) {
// field 的 confirmPwd 属性
if (field.confirmPwd) {
var first = field.confirmPwd.first;
var second = field.confirmPwd.second; this.firstField = Ext.getCmp('loginPassword');
this.seconField = Ext.getCmp('rePassword');
var firstPwd = this.firstField.getValue();
var secondPwd = this.seconField.getValue();
if (firstPwd == secondPwd) {
return true;
} else {
return false;
}
}
},
confirmPwdText:'两次输入的密码不一致!',
}); Ext.onReady(function () {
var formPanel = new Ext.create({
xtype: 'form',
id: 'multiColumnForm',
collapsible: false,
frame: true,
title: '用户注册表单',
bodyPadding: '5 5 0',
width: ,
fieldsDefaults: {
labelAlign: 'top',
msgTarget: 'side'
},
renderTo: 'regist_div',
items: [
{
xtype: 'textfield',
id: 'nameText',
name: 'nameText',
fieldLabel: '用户名',
allowBlank: false,
tooltip: '请输入您的用户名',
afterLabelTextTpl: required,
blankText: '请输入您的用户名',
}, {
xtype: 'textfield',
inputType: 'password',
name: 'loginPassword',
id: 'loginPassword',
fieldLabel: '密码',
tooltip: '请输入密码',
afterLabelTextTpl: required,
allowBlank: false,
blankText: '请输入密码',
regex: /^[\s\S]{,}$/,
regexText: '密码长度不能超过32个字符', },
{
xtype: 'textfield',
inputType: 'password',
name: 'rePassword',
id: 'rePassword',
vtype:'confirmPwd',
fieldLabel: '确认密码',
tooltip: '请确认密码',
afterLabelTextTpl: required,
allowBlank: false,
blankText: '确认密码不能为空',
regex: /^[\s\S]{,}$/,
regexText: '密码长度不能超过32个字符',
// 调用密码验证中的定义的属性
confirmPwd: {
first: 'loginPassword',
second:'rePassword'
}
},
{
xtype: 'button',
name: 'registButton',
id: 'registButton',
text: '保 存',
width: ,
height: ,
handler: function () {
var isValid = this.up('form').getForm().isValid();
              if(isValid){
// TODO 表单提交到后台处理  }     
}
},
{
xtype: 'button',
name: 'RegistButton',
text: '取 消',
width: ,
height: ,
handler: function () {
window.open('/home/index?id=' + new Date());
}
}]
});
}); </script>

方法二 : 主要 代码如下:

 <script type='text/javascritp>

    // 定义函数: 验证再次输入的密码是否一致
Ext.apply(Ext.form.VTypes, {
password : function(val, field) {
// field 的 initialPassField 属性
if (field.initialPassField) {
var pwd = Ext.getCmp(field.initialPassField);
return (val == pwd.getValue());
}
return true;
},
passwordText : '两次输入的密码不一致!'
}); // 创建表单
Ext.onReady(function () {
var formPanel = new Ext.create({
xtype: 'form',
id: 'multiColumnForm',
collapsible: false,
frame: true,
title: '用户注册表单',
bodyPadding: '5 5 0',
width: ,
fieldsDefaults: {
labelAlign: 'top',
msgTarget: 'side'
},
renderTo: 'regist_div',
items: [
{
xtype: 'textfield',
id: 'nameText',
name: 'nameText',
fieldLabel: '用户名',
allowBlank: false,
tooltip: '请输入注册用户名',
afterLabelTextTpl: required,
blankText: '请输入注册用户名',
}, {
xtype: 'textfield',
inputType: 'password',
name: 'loginPassword',
id: 'loginPassword',
fieldLabel: '密码',
tooltip: '请输入密码',
afterLabelTextTpl: required,
allowBlank: false,
blankText: '请输入密码',
regex: /^[\s\S]{,}$/,
regexText: '密码长度不能超过20个字符', },
{
xtype: 'textfield',
inputType: 'password',
name: 'rePassword',
id: 'rePassword',
vtype:'confirmPwd',
fieldLabel: '确认密码',
tooltip: '请确认密码',
afterLabelTextTpl: required,
allowBlank: false,
blankText: '请确认密码',
regex: /^[\s\S]{,}$/,
regexText: '密码长度不能超过32个字符',
initialPassField : 'loginPassword' // 调用密码验证函数中的属性
},
{
xtype: 'button',
name: 'registButton',
id: 'registButton',
text: '保 存',
width: ,
height: ,
handler: function () {
var isValid = this.up('form').getForm().isValid();
              if(isValid){
// TODO 表单提交到后台处理 
}     
}
},
{
xtype: 'button',
name: 'RegistButton',
text: '取 消',
width: ,
height: ,
handler: function () {
window.open('/home/index?id=' + new Date());
}
}]
});
});
</script>

 运行效果如下:

EXTJS 密码确认与验证的更多相关文章

  1. 第一百五十一节,封装库--JavaScript,表单验证--密码确认验证--回答验证--电子邮件验证加自动补全

    封装库--JavaScript,表单验证--密码确认验证--回答验证--电子邮件验证加自动补全 效果图 html <div id="reg"> <h2 class ...

  2. Angular使用总结 ---以密码确认为例实现模版驱动表单的自定义校验

    上一篇 总结了模版驱动表单的基本用法,示例中的校验使用的是原生HTML5的校验方式,本文补上自定义校验的部分. HTML5原生的表单校验属性(必填,长度限制,取值间隔,正则表达式等等)可以满足普通的校 ...

  3. PHP Laravel 6.2 中用于用户登录的新密码确认流程

    Laravel 发布了 v6.2 版本,它添加了一个新的密码确认功能,该功能使你可以要求已登录的用户重新输入密码,然后才能访问路由. 在你执行敏感操作的时候,这个功能就类似GitHub确认对话框.在 ...

  4. Oracle11g R2创建PASSWORD_VERIFY_FUNCTION对应密码复杂度验证函数步骤

    Oracle11g R2创建PASSWORD_VERIFY_FUNCTION对应密码复杂度验证函数步骤 运行测试环境:数据库服务器Oracle Linux 5.8 + Oracle 11g R2数据库 ...

  5. Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能

    Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 我的本意是第二篇写Mob的shareSD ...

  6. oracle 11g/12c 密码复杂度验证设置

    ############################################################################### ###### 11g ###### ## ...

  7. Yii2处理密码加密及验证

    在Yii2中提供了密码加密以及验证的一系列方法,方便我们的使用,它使用的是bcrypt算法.查看源码我们可以发现它使用的是PHP函数password_hash()和crypt()生成. 加密: /** ...

  8. 用户找回密码功能JS验证邮箱通过点击下一步隐藏邮箱输入框并修改下一步按钮的ID

    //这里是BaseDao /** * 获得一个对象 * @param hql * @param param * @return */ public Object get(String hql, Obj ...

  9. (转)Java字符串应用之密码加密与验证

    1.通过java.Security.MessageDigest的静态方法getInstance创建具有指定算法名称的信息摘要,参数为算法名,传入”MD5“则表示使用MD5算法    2.Message ...

随机推荐

  1. flash文件制作笔记

    在uboot串口台输入printenv 可以分区以及其他信息,如下 hisilicon # printenv bootdelay=1baudrate=115200ethaddr=00:00:23:34 ...

  2. oracle中一个字符串包含另一个字符串中的所有字符

    oracle中一个字符串包含另一个字符串中的所有字符 --解决监理报告中所勾选的标段信息,与该用户所管理的标段字符串不匹配的问题. select * from a where instr(a,b)&g ...

  3. hibernate.cfg.xml讲解

    <session-factory> <!-- 配置数据库连接信息 --> <!-- 数据库驱动 --> <property name="connec ...

  4. JavaScript 中 4 种常见的内存泄露陷阱

    了解 JavaScript 的内存泄露和解决方式! 在这篇文章中我们将要探索客户端 JavaScript 代码中常见的一些内存泄漏的情况,并且学习如何使用 Chrome 的开发工具来发现他们.读一读吧 ...

  5. ERP_Oracle Erp发展趋势基于SOA电子商务方案

    2014-01-12 Created By BaoXinjian

  6. GL_GL系列 - 总账系统基础(概念)

    2014-07-07 Created By BaoXinjian

  7. QT之实现程序启动画面

    现在好多软件都有,尤其是大型软件,他们要加载的东西太多,因此需要的事件较长,而又不希望给用户产生成为好像没有响应的情况,因此也就需要程序启动画面来实现. 当然了,用widget要比这个丰富很多,不过代 ...

  8. Java多线程之notifyAll的作用域

    notifyAll()因某个特定锁而被调用时,只有等待这个锁的任务才会被唤醒. package Thread.Wait; import java.util.Timer; import java.uti ...

  9. Python快速教程

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 怎么能快速地掌握Python?这是和朋友闲聊时谈起的问题. Python包含的内容 ...

  10. 20145305 《Java程序设计》第2周学习总结

    教材学习内容总结 1.boolean类型可表示true与false 2.储存值超类型范围会出现溢值 3.变量在命名时不可以使用数字作为开头,不可以使用一些特殊字符,不可以与JAVA关键词同名,不可以与 ...