1

我遇到了一个问题,默认 HTML5 前端表单验证不适用于我创建的 Symfony 3 表单中的特定字段。

字段本身是自定义字段类型的实例,它是 EntityType 类的子类。选项可以通过 jQuery 动态添加到该字段,这些更改通过在 PreSumbmitEvent 回调中添加新选项反映在表单对象中。所有这些都有效。

我遇到的问题是由我必须使用的一个 jquery 插件引起的,它隐藏了 Symfony Forms 生成的选择字段,并向其附加了一个由复选框下拉菜单组成的多选小部件。当复选框被选中时,这些复选框会从隐藏的选择元素中动态选择选项。

问题:
选择元素被隐藏的事实也隐藏了 HTML5 前端验证提供的工具提示,因此当用户没有填写此字段时,表单会静默失败。

显然,HTML5 前端验证无法验证一组复选框,这意味着我无法使用 HTML5 的内置表单验证将验证委托给小部件。使用 Symfony 的 'error_mapping' 功能也不起作用,因为该小部件没有在表单类中定义。我想为此字段实现某种自定义前端验证,但我不确定如何在该字段为空的情况下停止使用 javascript 提交表单。

我的问题:
如何阻止 symfony 表单在前端提交?什么是 HTML5 前端验证来阻止 Symfony 表单提交,我有没有办法使用 javascript 来做到这一点?

感谢您的任何意见。

4

0 回答 0