Symfony 2-如何编辑单选按钮组
嗨,我是Symfony的新手,我有以下问题: 我正在实现一个费率表,所以我添加了一个单选按钮组,以便选择1到5之间的值。 这个想法是展示五星,而不是经典的单选按钮,所以我需要添加一个类 每个输入字段 问题是symfony将类添加到hole radio组,而不是每个输入 我搜索了一个解决方案,找到的最接近的提示是:Symfony 2-如何编辑单选按钮组,symfony,radio-button,twig,Symfony,Radio Button,Twig,嗨,我是Symfony的新手,我有以下问题: 我正在实现一个费率表,所以我添加了一个单选按钮组,以便选择1到5之间的值。 这个想法是展示五星,而不是经典的单选按钮,所以我需要添加一个类 每个输入字段 问题是symfony将类添加到hole radio组,而不是每个输入 我搜索了一个解决方案,找到的最接近的提示是: {% block choice_widget_expanded %} {% spaceless %} <div {{ block('widget_container_at
{% block choice_widget_expanded %}
{% spaceless %}
<div {{ block('widget_container_attributes') }}>
{% for child in form %}
{{ form_widget(child, {'attr': {'class': 'rating-input'}}) }}
{% endfor %}
</div>
{% endspaceless %}
{% endblock choice_widget_expanded %}
下面是我得到的html的示例图像:
有什么想法可以让我实现我想要的吗?
提前谢谢 有几种可能的解决方案: jQuery 看这个。将鼠标指针移到星星上,然后单击最后一颗星星 这些想法是:
上时,将前面的
全部涂成金色
的值并更改
值
值相同的星星数(如果不显示,您可以单击第三颗星,悬停5颗星,离开框,
的值(3)将与显示的星星数(5)不同)
元素。事实上,更改输入类型(收音机、选择、数字字段等)应该不是问题
编辑:
旧的解决方案:
设置每个值的样式
为什么要在收音机中添加一些课程
您可以使用CSS向
添加一些样式,例如:
label[for=tag\u rate\u 0]{
颜色:绿色;
}
标签[for=标签\费率\ 1]{
颜色:红色;
}
标签[for=标签费率2]{
颜色:蓝色;
}
标签[for=标签费率3]{
颜色:橙色;
}
标签[for=标签费率4]{
颜色:紫色;
}
请参见上的示例<代码>标签[for=tag\u rate\u 0]对应于1
分数,这是由于Symfony2计数字段的方式造成的
展示明星
您还可以通过修改表单来显示1到5颗星:
->添加('rate','choice',数组(
“选项”=>数组(
1 => '*',
2 => '**',
3 => '***',
4 => '****',
5 => '*****'
),
“扩展”=>true,
“多个”=>false
))
它将显示分数的*
至****
。请参见上的示例
jQuery用户界面
按钮小部件可用于。请参见。好的,下面是我所做的。
我使用表单主题化来覆盖每个输入的显示方式。
要做到这一点,您必须添加一个“form\u theme form self”标记,并覆盖要呈现表单的细枝中的choice\u小部件块
{% extends ::base.html.twig %}
{% form_theme form _self %}
{% block choice_widget_expanded %}
<div {{ block('widget_container_attributes') }}>
{% for child in form %}
{{ form_widget(child, {'attr': 'star'}) }}
{{ form_label(child) }}
{% endfor %}
</div>
{% endblock %}
{%extends::base.html.twig%}
{%form\u主题form\u self%}
{%block choice_widget_expanded%}
{表格%中的子项为%1}
{{form_小部件(子,{'attr':'star'}}}}
{{form_label(child)}
{%endfor%}
{%endblock%}
无论如何,感谢您的回答。比简单地通过单个单选按钮进行循环更容易:
{% for radioRate in form.rate %}
{{ form_widget(radioRate, {'attr': 'star'}) }}
{% endfor %}
谢谢你的回答,但也许我解释得不对。我想要的是将单选按钮显示为星形,而不是标签。正如你在回答中所解释的,在标签上显示星星是很容易的。我的问题是symfony将我用于显示星星的类设置为一组收音机,而不是每个收音机。谢谢请提供所需内容的图像。是否在网站上使用jQuery?你可以用它来添加任何你想要的类。谢谢你的回答,它可以满足我的需要,但是有没有办法用单选按钮来代替选择标签呢?我必须遵守设计师的设计规范,它们必须是收音机。很抱歉给您带来不便。
{% for radioRate in form.rate %}
{{ form_widget(radioRate, {'attr': 'star'}) }}
{% endfor %}