2

我正在尝试将一些CSS 类添加到我选择的特定选项中。

使用attr将其添加到 select 本身是没有问题的:

'attr'=>array('style'=>'width:300px', 'class'=>'class'),

但我想将类添加到选项本身:

<select name="select">
   <option class="x" value="1">red</option>
   <option value="2">blue</option>
   <option class="y" value="3">green</option>
</select> 

我还没有找到任何方法。我已经调查了ChoiceTypeChoiceList的实现。

我最喜欢的方法是将它们添加到服务器端。

感谢您的任何提示。

4

3 回答 3

3

最后,我正在等待的解决方案将在 2.7 ( source ) 中实现。

选择属性

返回选项的附加 HTML 属性。可以是数组、可调用对象(例如“choice_label”)或属性路径。如果是数组,则“choices”数组的键必须用作键。

// array
$builder->add('attending', 'choice', array(
    'choices' => array(
        'Yes' => true,
        'No' => false,
        'Maybe' => null,
    ),
    'flip_choices' => true,
    'choice_attr' => array(
        'Maybe' => array('class' => 'greyed-out'),
    ),
));
于 2014-10-07T14:00:12.013 回答
1

我不确定您在寻找什么,但正如我通过Florian Peschka 的评论所了解的那样,您想添加custom class到特定(特定)选项中,那么这就是我尝试过的。

jQuery

$('select>option:eq(1)').addClass("custom_class");

这里eq()方法:将匹配元素集减少到指定索引处的元素。就像Array它的索引开始一样,0如果你想选择第二个选项然后写eq(1).

在上面的代码中,我添加custom_class了第二个选项..

HTML:

<select name="select">
   <option class="x" value="1">red</option>
   <option value="2">blue</option>  # suppose you wanted to add custom class in this option
   <option class="y" value="3">green</option>
</select> 

现在看起来像

<option class="custom_class" value="2">blue</option>

工作演示

要签入演示,您可以右键单击下拉菜单并选择Inspect element with firebug在此处输入图像描述

如果这不是您要查找的内容,请使用您的预期输出更新您的问题..带描述

于 2014-09-22T06:27:15.653 回答
0

您将不得不覆盖表单中特定小部件的布局。查看示例如何将 css 类添加到特定的 symfony2 表单选项中?

于 2014-09-09T10:44:01.457 回答