16

这个问题类似于另一个问题设置 CSS 类的解决方案是将其添加到 FormBuilder::add() 调用的第三个参数中:

->add('title', null, array('attr' => array('class'=>'span2')))

不幸的是,这不适用于设置 CSS id。当我做

->add('title', null, array('attr' => array('id'=>'title-field')))

...这被忽略了。ID 仍然类似于 namespace_formtype_field。

如果有的话,我该如何设置 CSS ID?

4

4 回答 4

25

如果您将 id 设置在 'attributes' 数组之外,则可以在 twig 中渲染字段时执行此操作,如下所示:

{{ form_widget(form.field, { 'id': 'my_custom_id',  'attr': { 'class' : 'my_custom_class }} )}}
于 2014-07-23T09:31:31.990 回答
10

在树枝级别,您可以简单地执行以下操作:

{{ form_widget(form. title, { 'id': 'title-field' }) }}

在 Symfony 2.3.4 上测试

于 2014-05-05T18:01:22.387 回答
4

因为一个 HTML 元素不能有多个 ID,你想要完成的事情是不可能的,因为 Symfony 已经在表单元素上使用了 ID。

解决此问题的方法是将您的 JavaScript 更改为使用类并使用

->add('title', null, array(
    'attr' => array(
        'class'=>'title-field'
    )
))

另一种方法是将您的 JavaScript 使用的 ID 更改为 Symfony 的 ID。

于 2013-06-12T22:37:51.353 回答
1

我相信现在没有简单的答案。最接近的似乎实际上是通过使用form theming来更改标记。感谢Michi指出这一点。

于 2013-06-14T20:27:33.427 回答