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. erlang r19里面的mnesia_ext

    r19据说支持了mnesia_ext,终于可以给那个恶心2gb limit的mnesia换存储引擎了 先下载r19源码,编译 ./otp_build all -a ~/dev/erlang/r19 . ...

  2. Hadoop学习2--Linux准备及环境准备

    1.环境安装: 虚拟机:VMware Player 系统:Ubuntu12 注意事项:注意位数,包括系统,java,Hadoop 2.切换账号 当前登录账号是自己的账号,如果想切换到root,且是第一 ...

  3. SpringMVC4.0.3 @ResponseBody JSON 中文乱码问题

    @RequestMapping(value="listUserJson.html",produces="text/html;charset=UTF-8") @R ...

  4. BIP_开发案例06_以RB.RDF为数据源BIP.RTF为模板的简单例子(案例)

    2014-05-31 Created By BaoXinjian

  5. [复变函数]第10堂课 3.2 Cauchy 积分定理

    0. 引言 (1) $\dps{\int_{|z-a|=\rho}\frac{1}{z-a}\rd z=2\pi i\neq 0}$: 有奇点 (在 $|z|>0$: 二连通区域内解析), 周线 ...

  6. H桥电路

    电路特点:有三极管组成4个桥的腿,中间可以使电容或是电机. 应用:直流电机的正反转控制.DC-AC逆变电源(脉冲直流变为周期交流) 关键点:同一个时刻只能对角的一对三极管导通,同侧不能一块导通,共2对 ...

  7. Qt中在图片上叠加显示文字

    Qt中在图片上叠加显示文字   QCustLabel::QCustLabel(QWidget *parent):QLabel(parent){ setPixmap(QPixmap(QString::f ...

  8. python的装饰器

    什么是python的装饰器? 网络上的定义: 装饰器就是一函数,用来包装函数的函数,用来修饰原函数,将其重新赋值给原来的标识符,并永久的丧失原函数的引用. 在google上搜索下python 装饰器 ...

  9. R中根据匹配原则将一列拆分为几列的方法

    例如我们需要将一下数据的第二列从and处拆分为两列: before = data.frame(attr = c(1,30,4,6), type=c('foo_and_bar','foo_and_bar ...

  10. javascript数组去重的三种常用方法,及其性能比较

    在进行数组操作时往往会遇到去掉重复项的问题,下面简单介绍下数组去重的方法,以及其执行效率 方法一        采用两次循环        原理:拿当前的和他后面的比,如果后面的有重复的就干掉     ...