如何将CSS ID属性设置为Symfony2表单输入

Ola*_*lav 14 html formbuilder symfony

这个问题与另一个问题类似.目前的解决方案用于设置CSS类是将其添加到以FormBuilder呼叫的第三个参数:: Add()方法:

->add('title', null, array('attr' => array('class'=>'span2')))
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不适用于设置CSS ID.当我做

->add('title', null, array('attr' => array('id'=>'title-field')))
Run Code Online (Sandbox Code Playgroud)

......这被忽略了.ID仍然像namespace_formtype_field.

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

mb3*_*ard 21

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

{{ form_widget(form.field, { 'id': 'my_custom_id',  'attr': { 'class' : 'my_custom_class }} )}}
Run Code Online (Sandbox Code Playgroud)


Żab*_*jad 8

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

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

在Symfony 2.3.4上测试


Pie*_*eau 5

由于HTML元素不能有多个ID的,因为Symfony的已经在表单元素使用的ID你想实现什么是不可能的.

解决这个问题的方法是将JavaScript更改为使用类而不是使用

->add('title', null, array(
    'attr' => array(
        'class'=>'title-field'
    )
))
Run Code Online (Sandbox Code Playgroud)

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


Ola*_*lav 1

我现在确信没有简单的答案。最接近的似乎实际上是通过使用表单主题来更改标记。谢谢米奇指出这条路