[WebKit 现在有] HTML 交互式表单验证

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 价值 200 美元的免费信用额度!

Chris Dumez

WebKit 以前不支持 HTML 交互式表单验证,该验证在提交表单时发生(除非在 <form> 元素上设置了 novalidate 属性)或使用 reportValidity() API。我们很高兴地宣布,这现在已在 WebKit 中实现,并在 Safari Technology Preview 19 中启用。进行交互式表单验证后,WebKit 现在将检查表单中所有表单控件的有效性

Safari 中的表单验证一直很糟糕。它甚至不会阻止提交包含无效数据的表单。万岁,它终于得到了改进!它现在将阻止表单提交并显示可视错误

我最近才知道 reportValidity()。它就像 checkValidity() 一样,除了返回有关有效性的 truefalse 之外,它还会触发 UI

如果至少有一个表单控件违反约束,WebKit 将聚焦第一个控件,将其滚动到视图中,并在其附近显示一个气泡,其中包含一条消息,解释问题是什么。

查看 CodePen 上 Chris Coyier (@chriscoyier) 创建的示例 checkValidity 与 reportValidity

在为测试创建了该演示后,我看到 Chris Dumez 已经 创建了自己的演示

我想这会在某个时候传播到 iOS?我不确定这是如何运作的。

直接链接 →