首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在twig中使用form_start将没有值的属性应用于表单?

如何在twig中使用form_start将没有值的属性应用于表单?
EN

Stack Overflow用户
提问于 2013-11-26 20:19:34
回答 1查看 976关注 0票数 0

我想给我的表单一个自定义属性“数据遵守”使用Twig。例如,我希望将我的表单呈现为:

代码语言:javascript
复制
 <form method="post" action="" novalidate="novalidate" data-abide>

然而,我能做的最接近的是:

代码语言:javascript
复制
 {{  form_start(form, {
            'attr': {
                'novalidate': 'novalidate',
                'data-abide': null
            }
        })
    }}

这使:

代码语言:javascript
复制
<form method="post" action="" novalidate="novalidate" data-abide="">

有什么办法可以克服这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2013-11-26 23:16:44

是的,您可以覆盖默认的start_form块,因为默认情况下,所有属性都具有key="value“格式:

代码语言:javascript
复制
<form method="{{ form_method|lower }}" action="{{ action }}"{% for attrname, attrvalue in attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}{% if multipart %} enctype="multipart/form-data"{% endif %}>

此代码适用于我:

代码语言:javascript
复制
{% block form_start %}
{% spaceless %}
    {% set method = method|upper %}
    {% if method in ["GET", "POST"] %}
        {% set form_method = method %}
    {% else %}
        {% set form_method = "POST" %}
    {% endif %}
    <form method="{{ form_method|lower }}" action="{{ action }}" {% for attrname, attrvalue in attr %} {% if attrvalue %}{{ attrname }}="{{ attrvalue }}"{% else %}{{ attrname }}{% endif %} {% endfor %}{% if multipart %} enctype="multipart/form-data"{% endif %}>
    {% if form_method != method %}
        <input type="hidden" name="_method" value="{{ method }}" />
    {% endif %}
{% endspaceless %}
{% endblock form_start %}

此代码非常重要:

代码语言:javascript
复制
{% for attrname, attrvalue in attr %} {% if attrvalue %}{{ attrname }}="{{ attrvalue }}"{% else %}{{ attrname }}{% endif %} {% endfor %}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20227144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档