Ext用户验证

   抱歉各位,由于工作繁忙,很久没有写新文章了,在此感谢各位的支持!

   今天我们介绍的是Ext,作为一个功能强大的Ajax框架Ext拥有华丽的界面可以用在富客户端的开发上,彻底颠覆了人们对js的认识“原来脚本也不是想象中的麻烦”。如今已经有Ext 2.2的版本了。在Ext2.2的版本中添加了许多新的特性,特别是对GMap的支持,获得更多的信息请访问Ext官网Ext中文社区。下面介绍一个基于Ext2.1进行用户验证注册的例子:

一、主界面设计:

 Ext例子

                            (图一)

用户名已经存在

                        (图二)

Ext用户验证

          (图三)

Ext用户验证

                        (图四)

Ext用户验证

           (图五)

以上的五张图就为我们完整的展示了这个例子,接下来我们着重介绍代码部分。

二、代码逻辑设计:

 

  1  < script type = " text/javascript "   >
  2       Ext.onReady( function (){
  3          Ext.QuickTips.init();
  4          Ext.form.Field.prototype.msgTarget  =   ' side ' ;
  5          
  6          var  IsExsit = false ;
  7          var  regform = new  Ext.form.FormPanel({       
  8                 labelWidth: 80 ,
  9                 frame: true  ,
 10                  monitorValid: true , //进行表单验证
 11                 defaultType: ' textfield '
 12                 items:[{
 13                   fieldLabel: " 用户名 " ,
 14                   id: " txtusername " ,
 15                   name: " username " ,
 16                   width: 150 ,
 17                   labelAlign: " right " ,
 18                   validator : function ()
 19                   {
 20                      //本方法亦可以使用下面被注释的部分代替
 21                    var  username  =  Ext.get( ' username ' ).dom.value;
 22                   Ext.Ajax.request({
 23                      url: ' CheckUserName.aspx ' ,
 24                      params:{name:username},
 25                      success:  function (response, options) {            
 26                          var  data  =  Ext.util.JSON.decode(response.responseText);             
 27                          if (data.success  ==   true )  ReturnValue( true );
 28                          else  ReturnValue( false );//不能在success方法里面直接返回。
 29                      }  
 30                  });
 31                  function  ReturnValue(ok){
 32                IsExsit  =  ok;
 33              }
 34               return  IsExsit; 
 35                   },
 36                   invalidText: " 用户已经存在 " ,
 37                   emptyText: " 请输入用户名 "  ,
 38                   allowBlank: false  ,
 39                   blankText: " 请输入用户名! "
 40                 },
 41                 {
 42                  inputType: ' password ' ,
 43                  fieldLabel: " 密码 " ,
 44                 id: " pwd1 "  ,
 45                 name: " pwd1 "  ,
 47                 width: 150 ,
 48                 labelAlign: " right " ,
 49                 allowBlank: false  ,
 50                 blankText: " 密码不能为空! "
 51                 },
 52                 {
 53                 inputType: ' password ' ,
 54                 fieldLabel: " 确认密码 " ,
 55                 id: " pwd2 "  ,
 56                 name: " pwd2 "  ,
 57                 
 58                 width: 150 ,
 59                 labelAlign: " right " ,
 60                 allowBlank: false  ,
 61                 blankText: " 确认密码不能为空! " ,
 62                 validator: function ()
 63                 {
 64                     if (Ext.get( " pwd1 " ).dom.value != Ext.get( " pwd2 " ).dom.value)
 65                    {
 66                        return   false  ;
 67                    }
 68                     else
 69                    {
 70                       return   true ;
 71                    }
 72                 },
 73                 invalidText: " 两次密码不一致! "
 74                 }
 75                 ],
 76                 buttons:[{
 77                   text: " 注册 " ,
 78                   xtype: " submit " ,
 79                   formBind: true ,
 80                   handler: function ()
 81                   { 
 82                      Ext.MessageBox.show({
 83                        wait: true  ,
 84                       title: " 请稍侯 " ,
 85                       width: 150 ,
 86                       progressText: " saving "  ,
 87                       waitConfig:{interval: 200 ,duration: 2000 ,fn: function (){
 88                           Ext.MessageBox.hide();
 89                            Ext.MessageBox.alert( " 恭喜 " , " 注册成功! " );
 90                            win.hide();
 91                       }}
 92                      });
 93                     
 94                   }
 95                 },
 96                 {
 97                  text: " 取消 " ,
 98                 handler: function ()
 99                 {
100                    regform.form.reset();
101                 } 
102                 }
103                 ] 
104         });
105         
106         
107  //         var IsExsit=false;//此变量一定要在方法外面定义
108  //         function CheckUserName(){ //检查用户名是否存在
109  //             var username = Ext.get('username').dom.value;
110  //             Ext.Ajax.request({
111  //                 url:'CheckUserName.aspx',
112  //                 params:{name:username},
113  //                 success: function(response, options) {            
114  //                    var data = Ext.util.JSON.decode(response.responseText);             
115  //                    if(data.success == true){  
116  //                        ReturnValue(true);
117  //                    }else{  
118  //                        ReturnValue(false);//不能在success里面直接return
119  //                    }  
120  //                 }  
121  //             });
122  //             
123  //               function ReturnValue(ok){//此方法必须放CheckUserName里面。
124  //               IsExsit = ok;
125  //             }
126  //             return IsExsit;
127  //         }
128        
129         var  win = new  Ext.Window({
130           title: " Ext例子 " ,
131           width: 300 ,
132           height: 200 ,
133           //  modal:true,
134          shadow: " sides " ,
135          shadowOffset: 50 ,
136          closeAction: " hide " ,
137          closable: true ,
138          collapsible: true ,
139          maximizable: true ,
140          items:regform
141        });
142        
143        win.show(); 
144         
145       })
146      
147 
148      < / script>

当然想理解上面的代码,您也得对Ext这个强大的框架有一定的接触。好了,到这里为止整个例子的代码也都在这里了,由于本人初来乍到,可能有些疏漏或讲行晦涩的部分了,希望各位多多指教!

另外,上传本例子的源码,大家可以从这里下载。

                                                                                                            2008年10月13日

 

 

你可能感兴趣的:(ext)