【问题标题】:Including novalidate attribute into Symfony2 twig template在 Symfony2 树枝模板中包含 novalidate 属性
【发布时间】:2013-09-09 16:44:12
【问题描述】:

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

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

创建我的表单。

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

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

但这不起作用...有人有什么想法吗?

【问题讨论】:

    标签: html validation symfony twig


    【解决方案1】:

    您需要一个键/值对:

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

    【讨论】:

    • 嗨,谢谢。我确实让它与 novalidate: true 一起工作。
    • Jep,但 true 在某些浏览器中不是预期值。 {novalidate: 'novalidate'} 将生成 html novalidate="novalidate",每个支持 html5 的浏览器都应该能够识别它。
    • 是的,您使用哪个值并不重要,但使用与属性名称相同的值是 HTML 惯例。
    【解决方案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 %}
    

    Documentation: Form Theme

    【讨论】:

      【解决方案3】:

      您可以像这样将表单 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
      )); 
      

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2017-07-22
          • 2015-04-22
          • 2012-07-27
          • 1970-01-01
          • 1970-01-01
          • 2015-03-21
          • 1970-01-01
          • 2013-04-30
          • 1970-01-01
          相关资源
          最近更新 更多