16

我正在尝试禁用我的表单的 HTML5 验证,我已经看到我可以将 novalidate 包含到表单标记中,但是我正在使用

{{ form_start(contact) }}
{{ form_end(contact) }}

创建我的表格。

现在从我一直在阅读的内容来看,我应该能够在 form_start 中包含一个属性,这样代码就会给我这个

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

然而,这不起作用......有人有什么想法吗?

4

4 回答 4

29

您需要一个键/值对:

{{ form_start(contact, {attr: {novalidate: 'novalidate'}}) }}
于 2013-09-09T16:45:48.987 回答
2

如果您想添加novalidate应用程序的所有表单,请创建一个像这样的树枝模板:

{% extends 'form_div_layout.html.twig' %}

{# FORM START #}
{% block form_start %}
<form  action="{{ action }}"{% for attrname, attrvalue in attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}{% if multipart %} enctype="multipart/form-data"{% endif %} novalidate>
{% endblock form_start %}

文档:表单主题

于 2014-08-28T08:19:22.120 回答
2

您可以像这样将表单 novalidate 属性设置为 symfony 2 表单对象

$form = $this->createForm(new ClientType(), $clientEntity, array(
    'action' => $this->generateUrl('client_create'),
    'method' => 'POST',
    'attr'=>array('novalidate'=>'novalidate') //add novalidate attribute to form
)); 
于 2016-04-04T04:59:31.363 回答
2

您可以使用函数createFormBuilder()->setAttributes()为整个表单设置任何属性,包括novalidate

    $form = $this->createFormBuilder($task)
        ->add('value', IntegerType::class)
        ->add('save', SubmitType::class, array('label' => 'Save',))
        ->setAttributes(array(
            'novalidate'=>'novalidate',
            ))
        ->getForm();
于 2017-01-16T08:23:37.010 回答