0

我尝试创建以下字段:

<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');
        }
    });

当然,我的价值观不能由一颗星来完成。

如何将类应用于<option>Symfony2 中的标签?

4

1 回答 1

2

您必须覆盖小部件选择字段的呈现方式。

表单主题允许您自定义表单的每个部分。甚至可以覆盖基本表单块。

最好的方法是从form_div_layout.html.twig复制默认块 (在您的情况下,您必须覆盖该widget_choice_options块)

您还可以在应用程序的不同级别自定义块。更深入地查看文档,其中包含完整解释的示例。

于 2012-12-06T16:55:08.693 回答