• EXTJS 密码确认与验证


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

    方法一:主要代码如下

      1 <script type='text/javascritp>
      2         // 自定义样式
      3         var required = '<span style="color:red;font-weight:bold" data-qtip="Required">*</span>';
      4 
      5         // 定义函数: 验证再次输入的密码是否一致
      6         Ext.apply(Ext.form.VTypes, {
      7             confirmPwd: function (value, field) {
      8              // field 的 confirmPwd 属性
      9                 if (field.confirmPwd) {
     10                     var first = field.confirmPwd.first;
     11                     var second = field.confirmPwd.second;
     12 
     13                     this.firstField = Ext.getCmp('loginPassword');
     14                     this.seconField = Ext.getCmp('rePassword');
     15                     var firstPwd = this.firstField.getValue();
     16                     var secondPwd = this.seconField.getValue();
     17                     if (firstPwd == secondPwd) {
     18                         return true;
     19                     } else {
     20                         return false;
     21                     }
     22                 }
     23             },
     24             confirmPwdText:'两次输入的密码不一致!',
     25         });
     26          
     27 
     28         Ext.onReady(function () {
     29             var formPanel = new Ext.create({
     30                 xtype: 'form',
     31                 id: 'multiColumnForm',
     32                 collapsible: false,
     33                 frame: true,
     34                 title: '用户注册表单',
     35                 bodyPadding: '5 5 0',
     36                  600,
     37                 fieldsDefaults: {
     38                     labelAlign: 'top',
     39                     msgTarget: 'side'
     40                 },
     41                 renderTo: 'regist_div',
     42                 items: [
     43                     {
     44                         xtype: 'textfield',
     45                         id: 'nameText',
     46                         name: 'nameText',
     47                         fieldLabel: '用户名',
     48                         allowBlank: false,
     49                         tooltip: '请输入您的用户名',
     50                         afterLabelTextTpl: required,
     51                         blankText: '请输入您的用户名',
     52                     },
     53                    
     54                     {
     55                         xtype: 'textfield',
     56                         inputType: 'password',
     57                         name: 'loginPassword',
     58                         id: 'loginPassword',
     59                         fieldLabel: '密码',
     60                         tooltip: '请输入密码',
     61                         afterLabelTextTpl: required,
     62                         allowBlank: false,
     63                         blankText: '请输入密码',
     64                         regex: /^[sS]{0,32}$/,
     65                         regexText: '密码长度不能超过32个字符',
     66 
     67                     },
     68                     {
     69                         xtype: 'textfield',
     70                         inputType: 'password',
     71                         name: 'rePassword',
     72                         id: 'rePassword',
     73                         vtype:'confirmPwd',
     74                         fieldLabel: '确认密码',
     75                         tooltip: '请确认密码',
     76                         afterLabelTextTpl: required,
     77                         allowBlank: false,
     78                         blankText: '确认密码不能为空',
     79                         regex: /^[sS]{0,32}$/,
     80                         regexText: '密码长度不能超过32个字符',
     81                         // 调用密码验证中的定义的属性
     82                         confirmPwd: {
     83                             first: 'loginPassword',
     84                             second:'rePassword'
     85                         }
     86                     },
     87                     {
     88                         xtype: 'button',
     89                         name: 'registButton',
     90                         id: 'registButton',
     91                         text: '保 存',
     92                          90,
     93                         height: 30,
     94                         handler: function () {
     95                             var isValid = this.up('form').getForm().isValid();
     96               if(isValid){
     97                              // TODO 表单提交到后台处理 
     98 
     99                }     
    100                         }
    101                     },
    102                     {
    103                         xtype: 'button',
    104                         name: 'RegistButton',
    105                         text: '取 消',
    106                          90,
    107                         height: 30,
    108                         handler: function () {
    109                             window.open('/home/index?id=' + new Date());
    110                         }
    111                     }]
    112             });
    113         });
    114 
    115 </script>

    方法二 : 主要 代码如下:

     1 <script type='text/javascritp>
     2 
     3    // 定义函数: 验证再次输入的密码是否一致
     4    Ext.apply(Ext.form.VTypes, {
     5                 password : function(val, field) {
     6           // field 的  initialPassField 属性
     7                     if (field.initialPassField) {
     8                         var pwd = Ext.getCmp(field.initialPassField);
     9                         return (val == pwd.getValue());
    10                     }
    11                     return true;
    12                 },
    13                 passwordText : '两次输入的密码不一致!'
    14             });
    15 
    16         // 创建表单
    17         Ext.onReady(function () {
    18             var formPanel = new Ext.create({
    19                 xtype: 'form',
    20                 id: 'multiColumnForm',
    21                 collapsible: false,
    22                 frame: true,
    23                 title: '用户注册表单',
    24                 bodyPadding: '5 5 0',
    25                  600,
    26                 fieldsDefaults: {
    27                     labelAlign: 'top',
    28                     msgTarget: 'side'
    29                 },
    30                 renderTo: 'regist_div',
    31                 items: [
    32                     {
    33                         xtype: 'textfield',
    34                         id: 'nameText',
    35                         name: 'nameText',
    36                         fieldLabel: '用户名',
    37                         allowBlank: false,
    38                         tooltip: '请输入注册用户名',
    39                         afterLabelTextTpl: required,
    40                         blankText: '请输入注册用户名',
    41                     },
    42                    
    43                     {
    44                         xtype: 'textfield',
    45                         inputType: 'password',
    46                         name: 'loginPassword',
    47                         id: 'loginPassword',
    48                         fieldLabel: '密码',
    49                         tooltip: '请输入密码',
    50                         afterLabelTextTpl: required,
    51                         allowBlank: false,
    52                         blankText: '请输入密码',
    53                         regex: /^[sS]{0,20}$/,
    54                         regexText: '密码长度不能超过20个字符',
    55 
    56                     },
    57                     {
    58                         xtype: 'textfield',
    59                         inputType: 'password',
    60                         name: 'rePassword',
    61                         id: 'rePassword',
    62                         vtype:'confirmPwd',
    63                         fieldLabel: '确认密码',
    64                         tooltip: '请确认密码',
    65                         afterLabelTextTpl: required,
    66                         allowBlank: false,
    67                         blankText: '请确认密码',
    68                         regex: /^[sS]{0,32}$/,
    69                         regexText: '密码长度不能超过32个字符',
    70             initialPassField : 'loginPassword' // 调用密码验证函数中的属性
    71                     },
    72                     {
    73                         xtype: 'button',
    74                         name: 'registButton',
    75                         id: 'registButton',
    76                         text: '保 存',
    77                          90,
    78                         height: 30,
    79                         handler: function () {
    80                             var isValid = this.up('form').getForm().isValid();
    81               if(isValid){
    82                              // TODO 表单提交到后台处理 
    83                }     
    84                         }
    85                     },
    86                     {
    87                         xtype: 'button',
    88                         name: 'RegistButton',
    89                         text: '取 消',
    90                          90,
    91                         height: 30,
    92                         handler: function () {
    93                             window.open('/home/index?id=' + new Date());
    94                         }
    95                     }]
    96             });
    97         });
    98 </script>

     运行效果如下:

  • 相关阅读:
    [转]jQuery 1.4的十五大新功能实例精讲
    数据库优化使用索引优化存储过程
    SQL语句练习实例之一——找出最近的两次晋升日期与工资额
    Sql Server中三种字符串合并方法的性能比较
    在IIS7下配置ASP.NET v1.1(Visual Studio .NET 2003)环境
    数据库优化方法 (一)
    WEB版一次选择多个文件进行批量上传(swfupload)的解决方案
    [转]根据性能监视器,分析性能瓶颈
    数据库优化方法(三)
    英文SilverLight 4 tools for vs 2010 安装于vs 2010中文版,无法拖拽数据源问题解决方法
  • 原文地址:https://www.cnblogs.com/wisdo/p/4896207.html
Copyright © 2020-2023  润新知