Включение атрибута novalidate в шаблон twif Symfony2

Я пытаюсь отключить проверку HTML5 моей формы, и я видел, что я могу включить novalidate в тег формы, но я использую

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

для создания моих форм.

Теперь из того, что я читал, я должен был включить атрибут в form_start, чтобы код дал мне это

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

Это, однако, не работает... есть ли у кого-нибудь идеи?

Ответы

Ответ 1

Вам нужна пара ключ/значение:

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

Ответ 2

Вы можете установить атрибут form 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
)); 

Ответ 3

Если вы хотите добавить 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 %}

Документация: тема формы

Ответ 4

Вы можете использовать функцию createFormBuilder()->setAttributes() чтобы установить любые атрибуты для всей формы, включая novalidate:

    $form = $this->createFormBuilder($task)
        ->add('value', IntegerType::class)
        ->add('save', SubmitType::class, array('label' => 'Save',))
        ->setAttributes(array(
            'novalidate'=>'novalidate',
            ))
        ->getForm();