使用Symfony 3表单自定义前端验证动态添加的字段

时间:2016-10-11 19:32:20

标签: html5 symfony symfony-forms html5-validation

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

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

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

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

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

我的问题:
如何停止提交前端的symfony表单?什么是HTML5前端验证,以阻止Symfony表单提交,有没有办法让我使用JavaScript执行此操作?

感谢您的任何意见。

0 个答案:

没有答案