ExtJs4表单textfield中的验证使用以及自定义的vtype的使用

这几天忙这忙那的,几天工作之余继续我的extjs4的自学生涯,今天花了一点时间整理了一下文本域中常见的表单验证,希望对大家有所帮助...嘿嘿,不足之处,希望大家多多提点意见,共同进步.

    

  1 //创建一个基本的表单
  2     Ext.onReady(function(){
  3             
  4             //自己定义一个vtype,这样可以用在全局了,不必再每一处都重新写同样的验证了
  5             var timeTest=/^([1-9]|1[0-9]):([0-5][0-9])(\s[a\p]m)$/i;
  6             Ext.apply(Ext.form.field.VTypes,{
  7                 time:function(val,field){
  8                     return timeTest.test(val);    
  9                 },
 10                 //输出错误的提示信息
 11                 timeText:'输入的时间格式不对,必须是"12:90pm"',
 12                 //输入掩码,用于输入过滤,即限制输入字符集
 13                 timeMask:/[\d\s:am]/i
 14                 
 15             });
 16             
 17             Ext.create('Ext.form.Panel',{
 18             title:'基本表单验证',
 19             width:300,
 20             bodyPadding:10,
 21             style : 'padding-top: 10px',
 22             bodyStyle : 'background-color:#FFFFFF',
 23             defaultType:'textfield',//默认的表单选项
 24             fieldDefaults : {
 25                                 labelAlign : 'right',
 26                                 msgTarget : 'side',
 27                                 labelWidth : 120
 28                             },
 29             items:[
 30                 {
 31                     fieldLabel:'非空验证',
 32                     name:'name',
 33                     allowBlank: false,
 34                     blankText:'不能为空'
 35                 },//allowBlank是否为空的验证,blankText提示文本
 36                 {
 37                     xtype:'textfield',
 38                     name:'email',
 39                     fieldLabel:'邮件验证',
 40                     allowBlank:false,
 41                     blankText:'邮件不能为空',
 42                     vtype:'email',
 43                     vtypeText:'您输入的邮箱地址不合法'
 44                 },//vtype为extjs自动验证的一些属性
 45                 {
 46                     xtype:'textfield',
 47                     name:'length',
 48                     fieldLabel:'验证指定长度',
 49                     allowBlank:false,
 50                     blankText:'不能为空',
 51                     minLength:5,
 52                     maxLength:10,
 53                 },
 54                 {
 55                     name:'english',
 56                     fieldLabel:'全部英文',
 57                     allowBlank:false,
 58                     blankText:'不能为空',
 59                     vtype:'alpha',
 60                     vtypeText:'请输入英文'        
 61                 },
 62                 {
 63                     name:'numberAndApl',
 64                     fieldLabel:'字母与数字',
 65                     allowBlank:false,
 66                     blankText:'不能为空',
 67                     vtype:'alphanum',
 68                     vtypeText:'只能是数字和字母'    
 69                 },
 70                 {
 71                     xtype:'textfield',
 72                     name:'url',
 73                     fieldLabel:'网址',
 74                     allowBlank:false,
 75                     blankText:'不能为空',
 76                     vtype:'url',//如:http://www.baidu.com
 77                     vtypeText:'请输入正确的网址格式'    
 78                 },
 79                 {
 80                     name:'youzheng',
 81                     fieldLabel:'邮政编码',
 82                     allowBlank:false,
 83                     blankText:'不能为空',
 84                     regex:/^[1-9]{1}(\d){5}$/,    
 85                     regexText:'请输入正确的邮政编码'
 86                 },
 87                 {
 88                     xtype:'textfield',
 89                     name:'chinese',
 90                     fieldLabel:'汉字',
 91                     allowBlank:false,
 92                     blankText:'不能为空',
 93                     regex:/^[\u4E00-\u9FA5]+$/,
 94                     regexText:'请输入汉字'
 95                 },
 96                 {
 97                     xtype:'textfield',
 98                     name:'telephone',
 99                     fieldLabel:'手机号码',
100                     allowBlank:false,
101                     blankText:'不能为空',
102                     regex:/^1[\d]{10}$/,
103                     regexText:'手机号码必须是1开头的,后面跟10位数字结尾'    
104                 },
105                 {
106                     xtype:'textfield',
107                     name:'phone',
108                     fieldLabel:'电话号码',
109                     allowBlank:false,
110                     blankText:'电话号码不能空',
111                     regex:/^0(\d{2}|\d{3})\-(\d{7}|\d{8})$/,
112                     regexText:'电话号码必须如:0xx-1234344'
113                 },
114                 {
115                     xtype:'textfield',
116                     name:'ip',
117                     fieldLabel:'ip地址',
118                     allowBlank:false,
119                     blankText:'不能为空',
120                     regex:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,
121                     regexText:'请输入Ip地址'    
122                 },
123                 {
124                     xtype:'textfield',
125                     name:'id',
126                     fieldLabel:'身份证',
127                     allowBlank:false,
128                     blankText:'不能为空',
129                     regex:/(^\d{15}$)|(^\d{17}([0-9]|[x,X])$)/,
130                     regexText:'请输入正确的身份证号码,15位或者18位...15全为数字,18位最后一位可能是数字也可能是x',    
131                 },
132                 {
133                     xtype:'textfield',
134                     name:'time',
135                     fieldLabel:'使用自定义时间格式',
136                     allowBlank:false,
137                     blankText:'不能为空',
138                     vtype:'time'
139                 }
140             ],
141             url: 'add_user',
142             buttons:[{
143                 text:'Submit',
144                 handler:function(){
145                     //获取基本的表单
146                     var biaodan=this.up('form').getForm();
147                     if(biaodan.isValid()){//提交前先验证
148                         biaodan.submit({
149                                 success:function(biaodan,action){
150                                     Ext.Msg.alert('Success',action.result.msg);
151                                 },
152                                 failure:function(form,action){
153                                     Ext.Msg.alert('Failed',action.result.msg);
154                                 }
155                             });
156                         
157                         }    else{//显示验证错误信息
158                             
159                             Ext.Msg.alert('无效输入','请输入正确的信息!');    
160                         }
161                     
162                 }    
163                 
164             }],
165             
166             renderTo:document.body
167         });    
168     
169             
170     });

 

 

posted @ 2013-04-22 17:21  全力以赴001  阅读(3318)  评论(0编辑  收藏  举报