Php 在Symfony2上创建多色选择框
我尝试创建以下字段:Php 在Symfony2上创建多色选择框,php,css,symfony,drop-down-menu,Php,Css,Symfony,Drop Down Menu,我尝试创建以下字段: <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</op
<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>
或者如果在我的表格中,我:
$builder->add('test', 'choice', array(
'required' => true,
'choices' => array('a', 'b', 'c *', 'd', 'e'),
'attr' => array('class' => 'red'),
));
该属性存储在
标记中,并应用于整个可选值
编辑
我使用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');
}
});
当然,我的价值观不是一颗星能完成的
如何将类应用于Symfony2中的
标记?您必须覆盖小部件选择字段的呈现方式
允许您自定义表单的每个部分。甚至可以被覆盖
执行此操作的最佳方法是从复制默认块
(在您的情况下,您必须覆盖widget\u choice\u options
块)
您还可以在应用程序的末尾自定义块。更深入地看一看,它包含了详细解释的示例。请注意,并非所有渲染引擎都支持选项元素的样式。Webkit看起来不太好,但是有点嗯,怎么说呢,仅仅向
添加属性是一项很难的工作……没那么难,文档中包含了许多用例和示例。您只需覆盖一个部分(取决于您的需要)。继承还可以帮助您保持代码的清晰和简单。
$('.starred-select option').each(function() {
if ($(this).text().substr(-2) == ' *') {
$(this).addClass('red');
}
});