【问题标题】:OroCRM how to disable client side validation?OroCRM 如何禁用客户端验证?
【发布时间】:2026-01-26 05:00:01
【问题描述】:

我可以为指定的字段/约束禁用客户端验证(通过 jQuery)吗?

我试过这个: form_widget(form.myField,{'attr':{'data-validation':''}})

它禁用了客户端和后端验证。但我只需要禁用前端验证

【问题讨论】:

  • 此代码无法禁用后端验证。该字段使用的 FormType 是什么?
  • @HubertLcorche 这是一个文本字段
  • 您可以在 FormType 类中禁用“需要验证器”: $builder ->add('your_field', 'text', array('required' => false)) ;
  • @HubertLcorche 是的,我知道'required' 参数。但是在 OroCRM 中有一个 jQuery Validator Plugin 可以将 Symfony 约束转换为前端(如正则表达式、长度和其他约束)

标签: symfony symfony-forms orocrm


【解决方案1】:

要停用所有字段的客户端验证,请尝试使用:

{{ form_start(form, { 'attr': {'novalidate': ''} }) }}

【讨论】:

  • 是的,成功了,谢谢。请在下面查看我的答案 - CRM 供应商提供了另一种方法
【解决方案2】:

好的,谢谢大家。今天,Oro Core 团队开发人员 Hryhorii Hrebiniuk 提供了一个正确的解决方案:

所以,如果你想删除没有字段的所有验证规则 条件——你可以使用这种方法。但是有更好的方法。 与 data-validation-optional-group 属性相同,还有其他有用的 属性 — 数据验证忽略。如果任何字段/字段组是 包裹在具有 data-validation-ignore 属性的元素中,前端 验证器忽略此字段/字段组的验证规则。你 可以在运行时添加/删除此属性以更改验证 行为。

OroCRM 论坛主题:http://www.orocrm.com/forums/topic/is-it-possible-to-inherit-frontend-validation

例如:

{# this wrapper div disables front-end jQuery Validate validation #}

<div data-validation-ignore>
    {{ form_widget(form.field1) }}
    {{ form_widget(form.field2) }}
    {{ form_widget(form.field3) }}
    ...
    {{ form_widget(form.fieldN) }}
</div>

【讨论】: