繁体   English   中英

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

[英]How to set a CSS ID attribute to a Symfony2 form input

这个问题与另一个问题类似。 设置CSS类的解决方案是将它添加到对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?

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

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

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

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

在Symfony 2.3.4上测试

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

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

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

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

我相信现在没有简单的答案。 事实上,最接近似乎通过使用形式主题来改变标记。 谢谢Michi这样说。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM