对于包含日期字段小部件的模板,非日期输入字段的背景颜色将根据CSS更改。在date小部件上则不会发生同样的情况。应该如何影响date小部件的背景色?(在form类中添加attr数组没有任何效果。)
这是一个(很小但真实的)差异的截图:

代码示例:模板:
<td>{{ form_widget(form.fname, {'attr': {'class':'smallform'}}) }}
<td>{{ form_widget(form.sname, {'attr': {'class':'smallform'}}) }}
<td>{{ form_widget(form.dateAdded, {'attr': {'class':'smallform'} }) }}Form类:
->add('fname', null, array('required' => false))
->add('sname', null, array('required' => false))
->add('dateAdded', 'date', array(
'widget' => 'choice',
'format' => 'MM/dd/yyyy',
'pattern' => '{{ year }}-{{ month }}-{{ day }}',
'years' => range(Date('Y'), Date('Y') - 5),
'required' => false,
'data' => date_create(),
))CSS:
.smallform {
background-color: #f5f5f5;
font-size: 9pt;
color: #000066;
border: 1px solid #CCCC99;
}发布于 2012-12-18 01:57:26
一个简单的解决方案是:修改我的应用程序的自定义fields.html.twig副本中的date小部件。更精确的解决方案是为此定义一个特定的小部件,或者弄清楚如何将class属性一直保留到日期小部件中:
{% block date_widget %}
{% spaceless %}
{% if widget == 'single_text' %}
{{ block('form_widget_simple') }}
{% else %}
<div {{ block('widget_container_attributes') }}>
{{ date_pattern|replace({
'{{ year }}': form_widget(form.year, {'attr': {'class':'smallform'}}),
'{{ month }}': form_widget(form.month, {'attr': {'class':'smallform'}}),
'{{ day }}': form_widget(form.day, {'attr': {'class':'smallform'}}),
})|raw }}
</div>
{% endif %}
{% endspaceless %}
{% endblock date_widget %}发布于 2012-12-17 02:06:03
尝试:
->add('fname', null, array(
'required' => false,
'attr' => array('class' => 'smallform')
))
->add('sname', null, array(
'required' => false,
'attr' => array('class' => 'smallform')
))
->add('dateAdded', 'date', array(
'attr' => array('class' => 'smallform'), // ADDED
'widget' => 'choice',
'format' => 'MM/dd/yyyy',
'pattern' => '{{ year }}-{{ month }}-{{ day }}',
'years' => range(Date('Y'), Date('Y') - 5),
'required' => false,
'data' => date_create(),
))另外,使用view-source来确保类实际上是在html标记中设置的,这可能是CSS的一个问题。
这些行有一个问题:
<td>{{ form_widget(form.fname, {'attr': {'class':'smallform'}}) }}</td>
我不认为您可以在整个小部件上设置类,只能为单个行设置类。如果您需要通过twig设置类,可以尝试此操作。
<form action="" method="">
{{ form_errors(form) }}
{{ form_row(form.fname, { 'attr': {'class': 'smallform' } }) }}
{{ form_row(form.sname, { 'attr': { 'class': 'smallform' } }) }}
<div class="smallform">
{{ form_row(form.dateAdded) }}
</div>
{{ form_rest(form) }}
<input type="submit" name="submit" value="Submit" />
</form>https://stackoverflow.com/questions/13903671
复制相似问题