我正在尝试禁用表单的HTML5验证,我看到我可以在表单标记中包含novalidate但是我正在使用
{{ form_start(contact) }}
{{ form_end(contact) }}
创建表单。
现在从我读过的内容中我应该能够在form_start中包含一个属性,这样代码就可以给我这个
{{ form_start(contact, {'attr' : {'novalidate'}})
然而这不起作用......有没有人有任何想法?
答案 0 :(得分:24)
您需要一个键/值对:
{{ form_start(contact, {attr: {novalidate: 'novalidate'}}) }}
答案 1 :(得分: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
));
答案 2 :(得分:1)
如果您想在应用的所有形式中添加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 %}
答案 3 :(得分:0)
您可以使用函数createFormBuilder()->setAttributes()
为整个表单设置任何属性,包括novalidate
:
$form = $this->createFormBuilder($task)
->add('value', IntegerType::class)
->add('save', SubmitType::class, array('label' => 'Save',))
->setAttributes(array(
'novalidate'=>'novalidate',
))
->getForm();