Symfony2如何更改表单ID

时间:2014-07-17 21:07:29

标签: php jquery forms symfony

我有一个表单字段,我想在Twig中渲染时更改ID。由于某种原因,它没有将ID添加到表单字段。

以下是我在Twig中的表现:

 {{ form_widget(form.purchaseOrderLineItem, { 'value': value, 'id': 'new_id',  'attr': {'style': 'display:none'} }) }} 

以下是输出内容:

  <input class="form-control" type="text" value="203543" />

为什么不使用ID创建表单字段?

2 个答案:

答案 0 :(得分:0)

添加id属性是没有意义的,因为他在模板form_div_layout.html.twig中进行了硬编码。但你可以像这样覆盖它:

{% form_theme form _self %}

{% block widget_attributes %}
    {% spaceless %}
        {% if attr.id is not defined %}id="{{ id }}"{% endif %} name="{{ full_name }}"{% if read_only %} readonly="readonly"{% endif %}{% if disabled %} disabled="disabled"{% endif %}{% if required %} required="required"{% endif %}{% if max_length %} maxlength="{{ max_length }}"{% endif %}{% if pattern %} pattern="{{ pattern }}"{% endif %}
        {% for attrname, attrvalue in attr %}{% if attrname in ['placeholder', 'title'] %}{{ attrname }}="{{ attrvalue|trans({}, translation_domain) }}" {% else %}{{ attrname }}="{{ attrvalue }}" {% endif %}{% endfor %}
    {% endspaceless %}
{% endblock widget_attributes %}

{% block body %}
    {{ form(form) }}
{% endblock %}

答案 1 :(得分:0)

id需要位于attr部分:

{{ form_widget(form.purchaseOrderLineItem, { 'value': value,  'attr': {'style': 'display:none', 'id':'new_id'} }) }}