php - 在 Symfony2 上创建多色选择框

标签 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</option>
    <option value="5">e</option>
</select>

这将创建一个 2 色选择框:

enter image description here

但是在 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/

相关文章:

php - 实体中的 Doctrine isDeletable 方法

php - AWS - 真正的规范请求是什么?

html - 没有文本的行内 block 元素呈现不同

Symfony HWIOAuthBundle,如何配置 cURL?

html - Wordpress:图标未显示在打印页面上

c# - 单击时更改颜色 <a> (asp.net mvc 4 visual studio 2012)?

php - Symfony 2.1 Doctrine 装置安装

php - 如何覆盖 SonataUser 实体属性和表单?

php - 服务器从 example.html 重定向到 script.php?url=example

php - 在 Azure 上升级 PHP 8 后,404 Not Found nginx/1.14.2 - Laravel