Chris Dumez
WebKit 以前不支持 HTML 交互式表单验证,该验证在提交表单时发生(除非在
<form>
元素上设置了novalidate
属性)或使用reportValidity()
API。我们很高兴地宣布,这现在已在 WebKit 中实现,并在 Safari Technology Preview 19 中启用。进行交互式表单验证后,WebKit 现在将检查表单中所有表单控件的有效性
Safari 中的表单验证一直很糟糕。它甚至不会阻止提交包含无效数据的表单。万岁,它终于得到了改进!它现在将阻止表单提交并显示可视错误

我最近才知道 reportValidity()
。它就像 checkValidity()
一样,除了返回有关有效性的 true
或 false
之外,它还会触发 UI
如果至少有一个表单控件违反约束,WebKit 将聚焦第一个控件,将其滚动到视图中,并在其附近显示一个气泡,其中包含一条消息,解释问题是什么。
查看 CodePen 上 Chris Coyier (@chriscoyier) 创建的示例 checkValidity 与 reportValidity。
在为测试创建了该演示后,我看到 Chris Dumez 已经 创建了自己的演示。
我想这会在某个时候传播到 iOS?我不确定这是如何运作的。