Ответ 1
Вам нужна пара ключ/значение:
{{ form_start(contact, {attr: {novalidate: 'novalidate'}}) }}
Я пытаюсь отключить проверку HTML5 моей формы, и я видел, что я могу включить novalidate в тег формы, но я использую
{{ form_start(contact) }}
{{ form_end(contact) }}
для создания моих форм.
Теперь из того, что я читал, я должен был включить атрибут в form_start, чтобы код дал мне это
{{ form_start(contact, {'attr' : {'novalidate'}})
Это, однако, не работает... есть ли у кого-нибудь идеи?
Вам нужна пара ключ/значение:
{{ form_start(contact, {attr: {novalidate: 'novalidate'}}) }}
Вы можете установить атрибут 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
));
Если вы хотите добавить 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 %}
Вы можете использовать функцию createFormBuilder()->setAttributes()
чтобы установить любые атрибуты для всей формы, включая novalidate
:
$form = $this->createFormBuilder($task)
->add('value', IntegerType::class)
->add('save', SubmitType::class, array('label' => 'Save',))
->setAttributes(array(
'novalidate'=>'novalidate',
))
->getForm();