我正在尝试将一些 CSS类添加到我选择的特定选项中。
使用 attr 将其添加到选择中是没有问题的:
'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>
我还没找到任何办法。我已经调查了 ChoiceType 和 ChoiceList 实现。
我最喜欢的方法是在服务器端添加它们。
感谢任何提示。
答案 0 :(得分:3)
最后我要等待的解决方案将在2.7(source)中实现。
choice_attr
返回选项的其他HTML属性。可以是数组,a 可调用的(例如&#34; choice_label&#34;)或属性路径。如果一个阵列, &#34;选择的关键&#34;数组必须用作键。
// 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'),
),
));
答案 1 :(得分:1)
我不确定您在寻找什么,但正如我通过 Florian Peschka's 评论您想要将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
。
如果这不符合您的要求,请使用您的预期输出...说明
更新您的问题答案 2 :(得分:0)
您必须覆盖表单中特定小部件的布局。请参阅示例How can I add css classes to specific symfony2 form choices?