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. TX Textcontrol 使用总结四——打印

    使用内置的打印对话框在Text Control中只需一行代码就可以实现打印操作,通过调研 TextControl.Print 方法将打开一个打印对话框,用户可以设置打印机和其他打印参数.==>t ...

  2. rails里routes配置文件里的resources和resource的区别

    抄自 http://stackoverflow.com/questions/11356146/difference-between-resource-and-resources-in-rails-ro ...

  3. gcc中动态库和静态库的链接顺序

    so文件:动态库a文件: 静态库exe文件:可执行程序(linux下以文件属性来标示是否是可执行文件,与后缀名无关) 经过自己写的一些测试程序,大致了解了下gcc中链接顺序问题,总结出以下几点:1,动 ...

  4. 黄聪:优化清理WordPress数据库wp_options表(缩小autoload体积)

    使得wp_options表变得庞大的重要原因:无用的RSS Feed Cache.如果你在wp_options表中发现了大量option_name包含“_transient”的数据,那就是它没跑了.先 ...

  5. PHP 正则表达式常用函数使用小结

    在PHP中有两套正则表达式函数库.一套是由PCRE(Perl Compatible Regular Expression)库提供的.PCRE库使用和Perl相同的语法规则实现了正则表达式的模式匹配,其 ...

  6. HDU 1213 How Many Tables(并查集,简单)

    题解:1 2,2 3,4 5,是朋友,所以可以坐一起,求最小的桌子数,那就是2个,因为1 2 3坐一桌,4 5坐一桌.简单的并查集应用,但注意题意是从1到n的,所以要减1. 代码: #include ...

  7. 将博客搬至51CTO

    为了统一博客文章,将文章搬至51cto个人博客

  8. 开发工具及服务年度大奖评选 I Bugtags 荣获最具成长潜力奖

    作为全球最大中文 IT 社区和服务平台.中国最大技术管理者平台的 CSDN 在中国北京总部举办了一场 2015 年开发工具及服务年度大奖评选活动,此次活动目的在于推动开发服务及工具质量的提升,提高行业 ...

  9. C++中为什么构造函数不能是虚函数,析构函数是虚函数

    一, 什么是虚函数? 简单地说,那些被virtual关键字修饰的成员函数,就是虚函数.虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离:用形象的语 ...

  10. Vim 中截取部分内容保存到其他文件

    最近无聊,突然想跟着玩玩天池数据挖掘,发现数据好大,想转换到mysql数据库,phpmyadmin import 导入时抱错! 数据文件大大! 于是乎,准备截取一小段到另外一个文件测试先,然后,发现了 ...