可用构造函数定义表单验证器基础类,封装必填、长度、格式等通用逻辑;通过addrule/removerule动态管理规则,validate/checkfield执行校验,bindevents绑定事件并反馈结果。

可以用构造函数定义一个表单验证器基础类,封装通用验证逻辑(如必填、长度、格式等),再通过实例方法统一校验字段。
定义构造函数并初始化配置
构造函数接收表单元素或字段选择器,内部保存 DOM 引用和默认规则。可预设常用验证类型,也支持动态添加自定义规则。
- 用 this.form 缓存表单 DOM 元素,便于后续查询字段
- 用 this.rules 存储字段名到规则数组的映射,例如
{ username: [{ type: 'required' }, { type: 'minLength', value: 3 }] } - 可选传入默认提示文案或错误容器,提升复用性
提供添加/删除验证规则的方法
通过原型方法 addRule(fieldName, rule) 动态注册规则,rule 是形如 { type: 'email', message: '邮箱格式不正确' } 的对象;removeRule(fieldName, type) 可按类型移除特定规则。
- rule.type 支持内置类型(
required、email、minLength、maxLength、pattern) - message 字段可覆盖默认提示,未提供时使用内置提示(如“此项为必填项”)
- 同一字段可叠加多个规则,校验时逐个执行,遇到第一个失败即返回对应提示
实现核心校验方法 validate() 和单字段校验 checkField()
validate() 遍历所有已注册字段,调用 checkField(fieldName) 并收集结果;checkField() 获取字段值,依次运行其规则,返回 { valid: boolean, message: string }。
- 对空值优先处理 required:若字段为空且含 required 规则,直接返回错误
- email 类型用正则
/^[^\s@]+@[^\s@]+\.[^\s@]+$/判断;length 类型对比value.length;pattern 使用rule.value.test(value) - 支持同步校验,不依赖 Promise,适合基础场景;如需异步(如用户名唯一性),可扩展
asyncRules分离处理
绑定事件与简易反馈输出
提供 bindEvents() 方法,自动为字段绑定 blur 和 input 事件,在失焦时完整校验该字段,输入时清除上一次错误提示。
- 错误提示默认插入字段旁带
data-error的 span,或写入指定容器 - 成功状态可通过添加
validclass 或清空提示体现 - 可配合 reset() 方法清空所有提示和样式,用于表单重置
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











