我尝试创建以下字段:
<select name="test">
<option value="1">a</option>
<option value="2">b</option>
<option value="3" style="font-weight: bold; color: red;">c *</option>
<option value="4">d</option>
<option value="5">e</option>
</select>
这将创建一个 2 色选择框:
但是在 Symfony2 中,我不知道如何将类应用于单个选项。
如果在我看来我这样做:
{{
form_widget(myForm.test, {
'attr': {
'class': 'red',
}
})
}}
或者如果以我的形式我这样做:
$builder->add('test', 'choice', array(
'required' => true,
'choices' => array('a', 'b', 'c *', 'd', 'e'),
'attr' => array('class' => 'red'),
));
该属性存储在 <select>
中标记并应用于整个可选值。
编辑
我使用 jQuery 解决了这个问题:
1) 在我看来我把:
{{
form_widget(myForm.test, {
'attr': {
'class': 'starred-select',
}
})
}}
2) 在我的 javascripts 中,我输入:
$('.starred-select option').each(function() {
if ($(this).text().substr(-2) == ' *') {
$(this).addClass('red');
}
});
当然,我的值(value)观不能以一颗星结束。
我如何将一个类应用于 <option>
Symfony2 中的标签 ?
最佳答案
您必须覆盖小部件选择字段的呈现方式。
Form Theming允许您自定义表单的每个部分。连base form blocks可以被覆盖。
执行此操作的最佳方法是从 form_div_layout.html.twig 复制默认 block
(在您的情况下,您必须覆盖 widget_choice_options
block )
您还可以在 different levels 自定义您的区 block 你的应用程序。深入了解the documentation ,它包括完整解释的示例。
关于php - 在 Symfony2 上创建多色选择框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13748066/