隨筆 - 6  文章 - 129  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(467)

          文章檔案(423)

          相冊

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827414
          • 排名 - 49

          最新評論

          閱讀排行榜

          評論排行榜

           

          轉自:http://lbyzx123.iteye.com/blog/1143556

           

          新建一個文件,在文件內插入如下內容:

          Ext.apply(Ext.form.field.VTypes,   
          {  
                
            //首先定義一個vtype名稱,和他的驗證函數,val參數是文本框的值,field是文本框。一般我就使用val和正則表達式比較就OK了。  
            //然后定義一個vtype的報錯信息,與vtype名稱加Text后綴。OK了。  
            passwd: function(val, field)   
            {  
                  if (field.initialPassField)   
                  {  
                      var pwd = Ext.getCmp(field.initialPassField);  
                      return (val == pwd.getValue());   
                  }  
                  return true;  
            },  
            passwdText: '兩次輸入的密碼不一致!',  
              
            chinese:function(val,field)  
            {  
                  var reg = /^[\u4e00-\u9fa5]+$/i;  
                  if(!reg.test(val))  
                  {  
                      return false;  
                  }  
                  return true;  
            },  
            chineseText:'請輸入中文',  
              
            age:function(val,field)  
            {  
                  try  
                  {  
                      if(parseInt(val) >= 18 && parseInt(val) <= 100)  
                          return true;  
                      return false;  
                  }  
                  catch(err)   
                  {  
                      return false;  
                  }  
            },  
            ageText:'年齡輸入有誤',  
              
            alphanum:function(val,field)  
            {  
                  try  
                  {  
                      if(!/\W/.test(val))  
                          return true;  
                      return false;  
                  }  
                  catch(e)  
                  {  
                      return false;  
                  }  
            },  
            alphanumText:'請輸入英文字母或是數字,其它字符是不允許的.',  
              
            url:function(val,field)  
            {  
                  try  
                  {  
                      if(/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(val))  
                          return true;  
                      return false;  
                  }  
                  catch(e)  
                  {  
                      return false;  
                  }  
            },  
            urlText:'請輸入有效的URL地址.',  
              
            max:function(val,field)  
            {  
                  try  
                  {  
                      if(parseFloat(val) <= parseFloat(field.max))  
                          return true;  
                      return false;  
                  }  
                  catch(e)  
                  {  
                      return false;  
                  }  
            },  
            maxText:'超過最大值',  
              
            min:function(val,field)  
            {  
                  try  
                  {  
                      if(parseFloat(val) >= parseFloat(field.min))  
                          return true;  
                      return false;  
                  }  
                  catch(e)  
                  {  
                      return false;  
                  }  
            },  
            minText:'小于最小值',  
                  
            datecn:function(val,field)  
            {  
                  try  
                  {  
                      var regex = /^(\d{4})-(\d{2})-(\d{2})$/;  
                      if(!regex.test(val)) return false;  
                      var d = new Date(val.replace(regex, '$1/$2/$3'));  
                      return (parseInt(RegExp.$2, 10) == (1+d.getMonth())) && (parseInt(RegExp.$3, 10) == d.getDate())&&(parseInt(RegExp.$1, 10) == d.getFullYear());  
                  }  
                  catch(e)  
                  {  
                      return false;  
                  }  
            },  
            datecnText:'請使用這樣的日期格式: yyyy-mm-dd. 例如:2008-06-20.',  
              
            integer:function(val,field)  
            {  
                  try  
                  {  
                      if(/^[-+]?[\d]+$/.test(val))  
                          return true;  
                      return false;  
                  }  
                  catch(e)  
                  {  
                      return false;  
                  }  
            },  
            integerText:'請輸入正確的整數',  
              
            minlength:function(val,field)  
            {  
                  try  
                  {  
                      if(val.length >= parseInt(field.minlen))  
                          return true;  
                      return false  
                  }  
                  catch(e)  
                  {  
                      return false;  
                  }  
            },  
            minlengthText:'長度過小',  
              
            maxlength:function(val,field)  
            {  
               try  
               {  
                  if(val.length <= parseInt(field.maxlen))  
                      return true;  
                  return false;  
               }  
               catch(e)  
               {  
                  return false;  
               }  
            },  
            maxlengthText:'長度過大',  
              
            ip:function(val,field)  
            {  
                  try  
                  {  
                      if((/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(val)))  
                          return true;  
                      return false;  
                  }  
                  catch(e)  
                  {  
                      return false;  
                  }  
            },  
            ipText:'請輸入正確的IP地址',  
              
            phone:function(val,field)  
            {  
                  try  
                  {  
                      if(/^((0[1-9]{3})?(0[12][0-9])?[-])?\d{6,8}$/.test(val))  
                          return true;  
                      return false;  
                  }  
                  catch(e)  
                  {  
                      return false;  
                  }  
            },  
            phoneText:'請輸入正確的電話號碼,如:0920-29392929',  
              
            mobilephone:function(val,field)  
            {  
                  try  
                  {  
                      if(/(^0?[1][35][0-9]{9}$)/.test(val))  
                          return true;  
                      return false;  
                  }  
                  catch(e)  
                  {  
                      return false;  
                  }  
            },  
            mobilephoneText:'請輸入正確的手機號碼',  
              
            alpha:function(val,field)  
            {  
                  try  
                  {  
                      if( /^[a-zA-Z]+$/.test(val))  
                          return true;  
                      return false;  
                  }  
                  catch(e)  
                  {  
                      return false;  
                  }  
            },  
            alphaText:'請輸入英文字母',  
              
            money:function(val,field)  
            {  
                  try  
                  {  
                      if(/^\d+\.\d{2}$/.test(val))          
                          return true;  
                  return false;     
                  }  
                  catch(e)  
                  {  
                      return false;     
                  }  
           
            },  
            moneyText:'請輸入正確的金額'  
          });


          在頁面引入上面新建的文件,在相應界面的組件中定義vtype,即可進行有限驗證。

          引用示例代碼:

              //構建一個密碼Form      
                  var pwd = new Ext.form.Panel({  
                    labelWidth: 125,  
                    frame: true,  
                    title: '密碼驗證框',  
                    width: 350,  
                    renderTo : 'pw',  
                    allowDomMove : true,  
                    draggable : true,  
                    defaults: {  
                      width: 175,  
                      inputType: 'password'  
                    },  
                    defaultType: 'textfield',  
                    items: [{  
                      fieldLabel: '密碼:',  
                      name: 'pass',  
                      id: 'pass'  
                    },{  
                      fieldLabel: '密碼確認:',  
                      name: 'pass-cfrm',  
                      vtype: 'passwd',  
                      initialPassField: 'pass'  
                    }]  
                  }); 

          其中,initialPassField是自定義的屬性,記錄上一個password的id,然后在VType的驗證函數中取出上一個password組件的值,進行比較。

          記住:上一個password必須設置id屬性。



          posted on 2011-11-04 11:25 Ke 閱讀(755) 評論(0)  編輯  收藏 所屬分類: extJs

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 乌兰浩特市| 饶阳县| 仪征市| 吴忠市| 江安县| 称多县| 大余县| 长治县| 枣庄市| 岳普湖县| 庆城县| 花垣县| 屏东市| 宽城| 扎鲁特旗| 贵港市| 红河县| 阿拉善盟| 当雄县| 曲阜市| 岑溪市| 招远市| 乌拉特后旗| 鄂尔多斯市| 金寨县| 齐河县| 民和| 通江县| 额济纳旗| 象州县| 梁河县| 张掖市| 禄丰县| 孟连| 柘城县| 云龙县| 梅河口市| 宝山区| 壤塘县| 博客| 赣榆县|