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

时间:2013-06-12 16:34:50

标签: html symfony formbuilder

此问题与another question类似。用于设置CSS类的the solution是将它添加到对FormBuilder :: add()的调用的第3个参数中:

->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 个答案:

答案 0 :(得分:21)

如果您将ID设置在'属性之外,则可以在树枝中渲染字段时执行此操作。像这样的数组:

{{ form_widget(form.field, { 'id': 'my_custom_id',  'attr': { 'class' : 'my_custom_class }} )}}

答案 1 :(得分:8)

在树枝级别,你可以这样做:

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

在Symfony 2.3.4上测试

答案 2 :(得分:5)

由于HTML元素不能有多个ID,因此您无法实现的目标是因为Symfony已经在表单元素上使用了ID。

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

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

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

答案 3 :(得分:1)

我相信现在没有简单的答案。事实上,最接近似乎使用form theming来更改标记。感谢Michi以这种方式指点。