//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'
}
],

Ext vtype的更多相关文章

  1. 【转】EXT VTYPE自定义举例

    原文地址:http://www.blogjava.net/xiaohuzi2008/archive/2012/12/08/392676.html 近日来对Ext特别感兴趣,也许是它那种OO的设计思想吸 ...

  2. 【extjs】 ext5 Ext.grid.Panel 分页,搜索

    带有分页,搜索的grid. <%@page language="java" contentType="text/html; charset=UTF-8" ...

  3. EXt form属性

    配置项: success:执行成功后回调的函数,包括两个参数:form和action failure:执行失败后回调的函数,包括两个参数:form和action method:表单的提交方式,有效值包 ...

  4. EXT dateRange

    VTYPES: Ext.apply(Ext.form.VTypes, { daterange: function (val, field) { var date = field.parseDate(v ...

  5. Extjs利用vtype验证表单

    Ext.create('Ext.form.Panel', {         title: '表单验证',         renderTo: Ext.getBody(),         frame ...

  6. ExtJs之VTYPE验证

    <!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...

  7. ExtJs 自定义Vtype验证

    最近公司开发项目在用ExtJs,碰到验证的就大概的总结了一些常用的验证.自定义的验证主要有两种方式:一种是单字段的自定义验证,另一种是多字段间的验证.对于单字段的验证主要通过regex配置项指定自定义 ...

  8. Ext.Net学习笔记21:Ext.Net FormPanel 字段验证(validation)

    Ext.Net学习笔记21:Ext.Net FormPanel 字段验证(validation) 作为表单,字段验证当然是不能少的,今天我们来一起看看Ext.Net FormPanel的字段验证功能. ...

  9. ext 扩展控件—moneyField

    /** *数字控件 *带大写提示,和千分位 **/ Ext.define(appNameSpace+'.utils.MoneyField', { extend : 'Ext.form.field.Te ...

随机推荐

  1. jspm 是浏览器包管理工具

    jspm 是浏览器包管理工具. jspm 是 SystemJS 通用模块加载器的包管理器,基于动态 ES6 模块加载器 直接从任意的 registry(比如 npm 或者 GitHub)加载任意模块格 ...

  2. DIV+CSS命名规范-转载2

    一.CSS文件及样式命名1.CSS文件命名规范 全局样式:global.css: 框架布局:layout.css: 字体样式:font.css: 链接样式:link.css: 打印样式:print.c ...

  3. java中字符串的非空判断

    问题如下:在java 中 字符串为null 如何判断String str;if(str==null) ??str.equal("null") ?? 答:我觉得应该搞清楚字符串对象和 ...

  4. 实现手电筒Flash Light 关键代码

    实现手电筒Flash Light 关键代码 实现Flash的逻辑 view.setOnClickListener(new OnClickListener() { @Override public vo ...

  5. OData services入门----使用ASP.NET Web API描述

    http://www.cnblogs.com/muyoushui/archive/2013/01/27/2878844.html ODate 是一种应用层协议,设计它的目的在于提供一组通过HTTP的交 ...

  6. jQuery Wookmark 瀑布流布局

    瀑布流布局非常适合大量图片的展示,一改过去裁剪图片尺寸统一的排版,每张图片都能完全展示,并错落有致,让人眼前一亮. 版本: jQuery v1.4.3+ jQuery Wookmark Load v1 ...

  7. Struts2 - Interceptor中取得ActionName、Namespace、Method

    在Struts2的Interceptor中取得当前执行对应的ActionName.Namespace.Method方法: 可以使用: System.out.println(invocation.get ...

  8. 使用Lucene.Net实现全文检索

    使用Lucene.Net实现全文检索 目录 一 Lucene.Net概述 二 分词 三 索引 四 搜索 五 实践中的问题 一 Lucene.Net概述 Lucene.Net是一个C#开发的开源全文索引 ...

  9. Python基础教程【读书笔记】 - 2016/7/7

    希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第四波:第5章  条件.循环和其他语句 [总览]  深入介绍条件语句和循环语句,随后会看到列表推导式如何扮演循环和条件语 ...

  10. JAVA获取当前时间加一天

    01.获取当前时间 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return df.for ...