ExtJS表单常见验证方法汇总
ExtJS表单验证需先调用Ext QuickTips init并设置msgTarget属性。常用验证方式:空验证(allowBlank:false)、内置vtype(如email)、自定义密码确认(扩展VTypes)、正则表达式(regex)。灵活组合这些验证可覆盖多数业务场景。
深入探讨 ExtJS 表单验证的实用技巧。在前端开发中,表单验证是不可或缺的基础环节,而 ExtJS 提供的验证机制既灵活又强大,合理运用能显著提升开发效率。不过,在正式使用前,需要先完成基础配置——在 onReady 中调用 Ext.QuickTips.init(),确保组件能够正常展示提示信息。此外,msgTarget 属性决定了错误提示的显示位置,可选值包括 qtip(鼠标悬浮时显示)、title(浏览器标题,实际效果与 qtip 相近)、under(控件下方显示)、side(右侧显示图标,鼠标悬停提示)以及 id(指定某个元素显示),开发者可根据实际需求灵活选择。
接下来,我们逐一解析常见的验证方式。
1. 空值验证——最基础的校验防线
让某个字段禁止为空,只需配置两个参数:allowBlank:false 和 blankText。前者设为 false 表示不允许空值,后者用于自定义空值提示文字(默认显示 "This field is required!")。以文本框为例,配置方式非常直观:
复制代码 代码如下:
var form1 = new Ext.form.FormPanel({
width:350,
renderTo:"form1",
title:"FormPanel",
defaults:{xtype:"textfield",inputType:"password"},
items:[
{fieldLabel:"不能为空",
allowBlank:false,
blankText:"不能为空",
id:"blanktest",
}
]
});
2. 内置 vtype——快速格式化验证
ExtJS 默认支持多种常见格式验证,例如邮箱、URL、字母等。只需在字段配置中设置 vtype 属性,即可自动完成校验。以下是一个邮箱验证的示例:
复制代码 代码如下:
items:[
{fieldLabel:"不能为空",
vtype:"email",
vtypeText:"不是有效的邮箱地址",
id:"blanktest",
anchor:"90%"
}
默认支持的 vtype 包括:alpha(仅允许字母)、alphanum(字母和数字)、email(邮箱格式)、url(URL 格式)。直接使用即可,无需手动编写正则表达式,非常便捷。
3. 自定义密码确认验证
当内置验证无法满足需求时,自行扩展也很简单。例如,要求两个密码框输入内容一致,可以添加自定义 vtype:
复制代码 代码如下:
Ext.apply(Ext.form.VTypes,{
password:function(val,field){
if(field.confirmTo){
var pwd=Ext.get(field.confirmTo);
return (val==pwd.getValue());
}
return true;
}
});
items:[{fieldLabel:"密码",
id:"pass1",
},{
fieldLabel:"确认密码",
id:"pass2",
vtype:"password",
vtypeText:"两次密码不一致!",
confirmTo:"pass1",
}
这里用到了自定义配置项 confirmTo,它指向另一个组件的 id,验证时能获取对应输入框的值进行比较。实现思路清晰,代码简洁易维护。
4. 正则表达式——终极校验武器
当上述方式仍不够用时,直接使用正则表达式。通过 regex 属性定义规则,regexText 指定错误提示信息。例如,限制字段只能输入中文:
复制代码 代码如下:
new Ext.form.TextField({
fieldLabel : "姓名",
name : "author_nam",
regex : /[u4e00-u9fa5]/,
regexText:"只能输入中文!",
allowBlank : false
});
正则表达式写在 /.../ 之间,配合 allowBlank 等其他验证参数,能够组合出极为精细的校验逻辑,覆盖绝大多数复杂场景。
以上便是 ExtJS 表单验证的几种典型应用场景。从简单的空值检查到正则匹配,每一层都有对应的配置方案。在实际项目中,根据业务需求灵活组合这些验证方式,基本可以应对大多数校验要求。最后提醒一点:配置前务必开启 QuickTips,否则错误提示无法正常显示,影响用户体验。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
DCloud平台选型指南 适用场景与核心差异详解
DCloud是一个围绕跨平台开发与流应用构建的技术生态,旨在帮助前端开发者使用Web技术开发高性能移动应用。其核心产品包括集成开发环境HBuilderX和基于Vue js的uni-app框架,支持一套代码发布至iOS、Android、Web及多端小程序。相比ReactNative和Flutter,uni-app在多端覆盖和Vue技术栈学习成本上具有优势,适合
DCloud使用教程与常见问题解决方案详解
DCloud提供跨平台应用开发方案,核心为HBuilderX与uni-app框架。开发者使用Vue js语法编写代码,可编译发布至iOS、Android、Web及小程序等多端。流程涵盖项目创建、开发调试与真机预览。常见问题如设备识别、编译失败等可通过检查设置、查看日志与条件编译解决。应用完成后支持云打包生成安装包。
DCloud新手入门教程 从零开始快速掌握开发技巧
DCloud是一个基于Web技术的跨平台应用开发平台,允许开发者使用HTML5等语言编写代码,并编译为iOS、Android及小程序应用,实现“一次编写,多端发布”。开发需使用HBuilderX,基于Vue js进行页面开发,平台提供丰富组件与API,并支持插件市场扩展功能。
DCloud新手入门指南从零开始了解这个开发平台
DCloud是一个移动应用开发平台,旨在帮助前端开发者使用Web技术高效开发性能接近原生的跨平台应用。其核心产品包括HBuilderX开发环境和基于Vue js的uni-app框架,可实现一次开发、多端发布。平台通过完整工具链和插件生态降低开发门槛,适合需要快速迭代、覆盖多端的应用场景。
Zepto实战项目优化技巧与应用场景详解
Zepto js作为轻量级JavaScript库,专为移动端优化,体积仅约10KB。它支持模块化定制,可按需构建以减小体积。使用时需减少DOM操作、善用事件委托,并可混合原生API提升性能。Zepto能融入现代工程流,但需注意其与jQuery的API差异及兼容性限制,适合在移动端性能优先的场景中替代jQuery。
- 热门数据榜
相关攻略
2026-07-10 06:47
2026-07-10 06:47
2026-07-10 06:47
2026-07-10 06:47
2026-07-10 06:47
2026-07-10 06:46
2026-07-10 06:46
2026-07-10 06:46
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

