我有以下问题:
我有一个表单,用户可以选择切换开关(Yes
/No
)。
如果他们选择Yes
,我会在模板上隐藏几个字段(因为它们现在将自动计算)。
问题是现在,一组不同的字段必须不为空才能成功提交。
单击开关后,第一个字段不必是可选的(因为它们只是隐藏的,但仍然提交),但第二组字段必须非空。
有没有一种简单的方法可以使用Symfony的sfValidator类获得这种动态验证行为,或者我应该简单地使用jQuery破解一个解决方案?
这听起来像是Symfony中已经存在的Callback
约束的完美情况。引用链接文档:
回调约束的目的是创建完全自定义的验证规则,并将任何验证错误分配给对象上的特定字段。如果你在表单中使用验证,这意味着你可以让这些自定义错误显示在特定字段旁边,而不是简单地显示在表单的顶部
这解决了后端问题,您仍然需要注意字段的required
属性,以便HTML5验证能够正常工作。