2

我有一个带有输入“文本”字段的 Symfony2 表单,我用 jQuery 隐藏它以在其位置使用自动完成字段(输入字段的 css 设置为:“显示:无”)。鉴于该字段是必需的,当我尝试提交表单而不进行选择时,我会收到预期的验证错误消息。但是,我遇到的问题是 HTML5 客户端验证错误显示(冒泡)在浏览器窗口之外(附在左下角),而不是自动完成字段所在的位置。发生这种情况是因为设置错误气泡位置的输入字段被隐藏了。

有没有一种简单的方法可以将错误气泡(来自 HTML5 表单验证)附加到另一个元素,以便它显示在正确的位置?也许将它附加到输入字段的标签而不是小部件?还是使用 jQuery 插件创建的“ul”元素?为了提供一点上下文,我使用了Loopj Tokeninput jQuery 插件,它创建了一个“ul”元素来代替表单的输入“文本”字段(将后者的样式设置为“显示:无”)。

4

1 回答 1

0

这与 Symfony 无关,但与 HTML5 客户端验证有关。

您可以在表单上指定 novalidate 属性以关闭整个表单的客户端验证并滚动您自己的验证错误:

<form method="post" action="/foo" novalidate></form>

有关其他选项,请参阅此问题:禁用 HTML5 表单元素的验证

于 2012-08-21T13:51:57.350 回答