Extjs表单常见验证小结


Posted in Javascript onMarch 07, 2014
//放在onReady的function(){}中 
Ext.QuickTips.init(); //为组件提供提示信息功能,form的主要提示信息就是客户端验证的错误信息。 
Ext.form.Field.prototype.msgTarget='side'; //提示的方式,枚举值为:

qtip-当鼠标移动到控件上面时显示提示;
title-在浏览器的标题显示,但是测试结果是和qtip一样的;
under-在控件的底下显示错误提示;
side-在控件右边显示一个错误图标,鼠标指向图标时显示错误提示. 默认值;
id-[element id]错误提示显示在指定id的HTML元件中

1.一个最简单的例子:空验证

//空验证的两个参数 
allowBlank:false//false则不能为空,默认为true 
blankText:string//当为空时的错误提示信息

js代码为:
var form1 = new Ext.form.FormPanel({ 
width:350, 
renderTo:"form1", 
title:"FormPanel", 
defaults:{xtype:"textfield",inputType:"password"}, 
items:[ 
{fieldLabel:"不能为空", 
allowBlank:false, //不允许为空 
blankText:"不能为空", //错误提示信息,默认为This field is required! 
id:"blanktest", 
} 
] 
});

2.用vtype格式进行简单的验证。
在此举邮件验证的例子,重写上面代码的items配置:
items:[ 
{fieldLabel:"不能为空", 
vtype:"email",//email格式验证 
vtypeText:"不是有效的邮箱地址",//错误提示信息,默认值我就不说了 
id:"blanktest", 
anchor:"90%" 
} 
你可以修改上面的vtype为以下的几种extjs的vtype默认支持的验证: 
//form验证中vtype的默认支持类型

1.alpha //只能输入字母,无法输入其他(如数字,特殊符号等)
2.alphanum//只能输入字母和数字,无法输入其他
3.email//email验证,要求的格式是""
4.url//url格式验证,要求的格式是http://www.baidu.com

3.高级自定义密码验证
前面的验证都是extjs已经提供的,我们也可以自定义验证函数。

//先用Ext.apply方法添加自定义的password验证函数(也可以取其他的名字) 
Ext.apply(Ext.form.VTypes,{ 
password:function(val,field){//val指这里的文本框值,field指这个文本框组件,大家要明白这个意思 
if(field.confirmTo){//confirmTo是我们自定义的配置参数,一般用来保存另外的组件的id值 
var pwd=Ext.get(field.confirmTo);//取得confirmTo的那个id的值 
return (val==pwd.getValue()); 
} 
return true; 
} 
}); 
//配置items参数 
items:[{fieldLabel:"密码", 
id:"pass1", 
},{ 
fieldLabel:"确认密码", 
id:"pass2", 
vtype:"password",//自定义的验证类型 
vtypeText:"两次密码不一致!", 
confirmTo:"pass1",//要比较的另外一个的组件的id 
}

4.使用正则表达式验证
new Ext.form.TextField({ 
fieldLabel : "姓名", 
name : "author_nam", 
regex : /[\u4e00-\u9fa5]/, //正则表达式在/...../之间. [\u4e00-\u9fa5] : 只能输入中文. 
regexText:"只能输入中文!", //正则表达式错误提示 
allowBlank : false //此验证依然有效.不许为空.
Javascript 相关文章推荐
很可爱的输入框
Aug 03 Javascript
from表单多个按钮提交用onclick跳转不同action
Apr 24 Javascript
jQuery的deferred对象详解
Nov 12 Javascript
使用javascript实现Iframe自适应高度
Dec 24 Javascript
jQuery 遍历函数详解
Jul 05 Javascript
基于Bootstrap3表格插件和分页插件实例详解
May 17 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
Aug 05 Javascript
在web中js实现类似excel的表格控件
Sep 01 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
Jan 11 Javascript
jquery手机触屏滑动拼音字母城市选择器的实例代码
Dec 11 jQuery
三步实现ionic3点击退出app程序
Sep 17 Javascript
基于better-scroll 实现歌词联动功能的代码
May 07 Javascript
extJS中常用的4种Ajax异步提交方式
Mar 07 #Javascript
禁用JavaScript控制台调试的方法
Mar 07 #Javascript
jquery日历控件实现方法分享
Mar 07 #Javascript
jquery.form.js用法之清空form的方法
Mar 07 #Javascript
jquery设置按钮停顿3秒不可用
Mar 07 #Javascript
jquery 实现两级导航菜单附效果图
Mar 07 #Javascript
document.addEventListener使用介绍
Mar 07 #Javascript
You might like
PHP中对用户身份认证实现两种方法
2011/06/04 PHP
深入分析php之面向对象
2013/05/15 PHP
PHP读取文件内容后清空文件示例代码
2014/03/18 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
一个用js实现控制台控件的代码
2007/09/04 Javascript
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
python实现巡检系统(solaris)示例
2014/04/02 Python
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
python对list中的每个元素进行某种操作的方法
2018/06/29 Python
Python 的AES加密与解密实现
2019/07/09 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
Python如何实现邮件功能
2020/05/27 Python
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
网络安全方面的面试题
2015/11/04 面试题
学生爱国演讲稿
2014/01/14 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
选秀节目策划方案
2014/06/06 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书
2019通用版新员工入职培训方案!
2019/07/11 职场文书
CocosCreator如何实现划过的位置显示纹理
2021/04/14 Javascript
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers