//form验证中vtype的默认支持类型
1.alpha //只能输入字母,无法输入其他(如数字,特殊符号等)
2.alphanum//只能输入字母和数字,无法输入其他
3.email//email验证,要求的格式是"cnblogs@gmail.com"
4.url//url格式验证,
{fieldLabel:"不能为空", vtype:"email",//email格式验证 vtypeText:"不是有效的邮箱地址",//错误提示信息,默认值我就不说了 id:"blanktest", anchor:"90%" }
自定义vtype:
Ext.apply(Ext.form.VTypes, {
daterange: function (val, field) {
var date = field.parseDate(val);
if (!date) {
return;
}
if (field.startDateField && (!this.dateRangeMax || (date.getTime() != this.dateRangeMax.getTime()))) {
var start = Ext.getCmp(field.startDateField);
start.setMaxValue(date);
start.validate();
this.dateRangeMax = date;
}
else if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime()))) {
var end = Ext.getCmp(field.endDateField);
end.setMinValue(date);
end.validate();
this.dateRangeMin = date;
}
return true;
},
daterangeText: "开始日期和结束日期不匹配"
});
{
id: 'startdate',
xtype: 'datefield',
width: 190,
maxValue: new Date(),
margins: '0 0 0 6',
labelWidth: 60,
fieldLabel: '(跟进)从',
format: 'Y-m-d',
endDateField: 'enddate',
vtype: 'daterange'
}, {
id: 'enddate',
xtype: 'datefield',
width: 150,
maxValue: new Date(),
margins: '0 0 0 6',
labelWidth: 20,
fieldLabel: '至',
format: 'Y-m-d',
startDateField: 'startdate',
vtype: 'daterange'
}
blankText :
{xtype: 'textfield', fieldLabel: '票据密押', anchor: '94%', name:'draftkey', id:'draftkey', allowBlank:false, blankText :'票据密押不能为空'},
常用的vtype:
Ext.apply(Ext.form.VTypes, { daterange: function(val, field) { var date = field.parseDate(val); // We need to force the picker to update values to recaluate the disabled dates display var dispUpd = function(picker) { var ad = picker.activeDate; picker.activeDate = null; picker.update(ad); }; if (field.startDateField) { var sd = Ext.getCmp(field.startDateField); sd.maxValue = date; if (sd.menu && sd.menu.picker) { sd.menu.picker.maxDate = date; dispUpd(sd.menu.picker); } } else if (field.endDateField) { var ed = Ext.getCmp(field.endDateField); ed.minValue = date; if (ed.menu && ed.menu.picker) { ed.menu.picker.minDate = date; dispUpd(ed.menu.picker); } } return true; }, password: function(val, field) { if (field.initialPassField) { var pwd = Ext.getCmp(field.initialPassField); return (val == pwd.getValue()); } return true; }, passwordText: '两次输入的密码不一致!', 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(//(\(\d{3,4}\)|\d{3,4}-|\s)?\d{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:'请输入英文字母' });
items:[ { fieldLabel:'非空验证', name:'name', allowBlank: false, blankText:'不能为空' },//allowBlank是否为空的验证,blankText提示文本 { xtype:'textfield', name:'email', fieldLabel:'邮件验证', allowBlank:false, blankText:'邮件不能为空', vtype:'email', vtypeText:'您输入的邮箱地址不合法' },//vtype为extjs自动验证的一些属性 { xtype:'textfield', name:'length', fieldLabel:'验证指定长度', allowBlank:false, blankText:'不能为空', minLength:5, maxLength:10, }, { name:'english', fieldLabel:'全部英文', allowBlank:false, blankText:'不能为空', vtype:'alpha', vtypeText:'请输入英文' }, { name:'numberAndApl', fieldLabel:'字母与数字', allowBlank:false, blankText:'不能为空', vtype:'alphanum', vtypeText:'只能是数字和字母' }, { xtype:'textfield', name:'url', fieldLabel:'网址', allowBlank:false, blankText:'不能为空', vtype:'url',//如:http://www.baidu.com vtypeText:'请输入正确的网址格式' }, { name:'youzheng', fieldLabel:'邮政编码', allowBlank:false, blankText:'不能为空', regex:/^[1-9]{1}(\d){5}$/, regexText:'请输入正确的邮政编码' }, { xtype:'textfield', name:'chinese', fieldLabel:'汉字', allowBlank:false, blankText:'不能为空', regex:/^[\u4E00-\u9FA5]+$/, regexText:'请输入汉字' }, { xtype:'textfield', name:'telephone', fieldLabel:'手机号码', allowBlank:false, blankText:'不能为空', regex:/^1[\d]{10}$/, regexText:'手机号码必须是1开头的,后面跟10位数字结尾' }, { xtype:'textfield', name:'phone', fieldLabel:'电话号码', allowBlank:false, blankText:'电话号码不能空', regex:/^0(\d{2}|\d{3})\-(\d{7}|\d{8})$/, regexText:'电话号码必须如:0xx-1234344' }, { xtype:'textfield', name:'ip', fieldLabel:'ip地址', allowBlank:false, blankText:'不能为空', regex:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/, regexText:'请输入Ip地址' }, { xtype:'textfield', name:'id', fieldLabel:'身份证', allowBlank:false, blankText:'不能为空', regex:/(^\d{15}$)|(^\d{17}([0-9]|[x,X])$)/, regexText:'请输入正确的身份证号码,15位或者18位...15全为数字,18位最后一位可能是数字也可能是x', }, { xtype:'textfield', name:'time', fieldLabel:'使用自定义时间格式', allowBlank:false, blankText:'不能为空', vtype:'time' } ],