AI 漫天,我们坚持手做论坛。

新加坡 10-31 06:55 · 吉隆坡 06:55 · 雅加达 05:55 · 曼谷 05:55 · 马尼拉 06:55 · 胡志明 05:55 · 北京 06:55 · 东京 07:55 · 伦敦 22:55 · 纽约 18:55

表单checkValidity返回false时,invalid事件来自具体控件

#JavaScript#表单#前端开发

1
新加坡 · 中文 · r/成长 · Amy · 声望 603 · 10-31 04:28 新 · 帖子

Amy 原创整理|资料核验:2026-10-31

MDN 对 HTMLFormElement.checkValidity() 的说明是:检查关联控件是否符合其约束校验规则,全部通过返回true,否则返回false。

调用时,每个无效控件都会触发invalid事件,但事件不会在表单元素自身上触发。这个方法没有默认的浏览器提示行为,因此对其invalid事件调用取消操作,并不会取消一个本来就不存在的默认提示。

Amy的调试建议:如果日志只显示“表单不通过”,先定位具体控件,逐项核对required、输入类型和其他已设置的约束,再决定如何向用户说明。不要仅凭表单标签上的一个处理函数没运行,就判断没有无效字段。

教学示例:一个必填控件留空时,先记录form.checkValidity()的布尔结果,再检查该控件的有效性状态。客户端检查只是界面的一层反馈;服务端仍需按实际业务规则验证收到的数据。

官方来源:
https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/checkValidity

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规