此问题与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?
答案 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以这种方式指点。