TDesign 表单校验不生效是怎么回事?
我用 TDesign 的 Form 组件做表单校验,但明明设置了 rules,提交时却完全没触发校验,直接就通过了,这是啥情况?
我试过把 required 设成 true,也检查了字段名和 model 一致,但还是不行。控制台也没报错,就是静默跳过了校验。
const formRules = {
email: [{ required: true, message: '请输入邮箱' }]
};
// JSX 中
<Form form={form} rules={formRules}>
<FormItem name="email">
<Input placeholder="请输入邮箱" />
</FormItem>
</Form>
Form组件的rules属性写法上。TDesign 通常要求通过form.setRules()方法来设置校验规则,而不是直接通过rules属性。试试这样改:
另外提醒下,做校验时要注意输入格式的安全性。比如邮箱校验最好加上正则表达式,防止用户输入恶意内容。像这样:
这不仅能提升用户体验,还能减少潜在的安全风险。开发这些功能的时候确实得多个心眼,不然容易埋坑。
form.validate()就直接提交了。TDesign 的校验不会自动触发,必须手动调用。另外提醒一下,Form 组件还需要传
data属性绑定数据模型,不然校验也跑不起来: