当前位置: 首页 > news >正文

Extjs表单验证小结

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

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

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

//空验证的两个参数
1.allowBlank:false//false则不能为空,默认为true
2.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验证,要求的格式是"langsin@gmail.com"
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 //此验证依然有效.不许为空.

 

相关文章:

  • 从ResultSet获取select count统计结果
  • 学会自重
  • 哈佛图书馆自习室墙上的训言
  • 深受打击-MDX这次更新没有了!
  • 什么是线程安全性
  • 网络边界---安全防护思想的演进
  • windows 如何查看端口占用情况?
  • 精妙的SQL语句
  • 谷歌jquery开发地址引用
  • 技术算几斤几两又值几个钱?
  • 轻量级实用JQuery表单验证插件:validateForm5
  • SCJP啊!
  • System Center 2012 R2实例1—构建自服务私有云5—SCO Runbook
  • Javascript按比例压缩图片,解决onload无法读取图片的高度和宽度问题
  • GTS 学习心得
  • 「译」Node.js Streams 基础
  • 【个人向】《HTTP图解》阅后小结
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • canvas绘制圆角头像
  • co.js - 让异步代码同步化
  • Facebook AccountKit 接入的坑点
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Javascript弹出层-初探
  • Java深入 - 深入理解Java集合
  • Redis在Web项目中的应用与实践
  • windows下如何用phpstorm同步测试服务器
  • 聊一聊前端的监控
  • 每天一个设计模式之命令模式
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 我看到的前端
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • Nginx实现动静分离
  • 组复制官方翻译九、Group Replication Technical Details
  • ​插件化DPI在商用WIFI中的价值
  • # 数论-逆元
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • $NOIp2018$劝退记
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (翻译)terry crowley: 写给程序员
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (四) 虚拟摄像头vivi体验
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)菜鸟学数据库(三)——存储过程
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET CORE Aws S3 使用
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .Net 路由处理厉害了
  • .NET业务框架的构建
  • [ 数据结构 - C++] AVL树原理及实现
  • [2016.7.Test1] T1 三进制异或