在我的formType中,我使用以下内容来渲染我的日期字段类型。
$builder->add('date_naissance', 'date', array(
'input' => 'datetime',
'widget' => 'single_text',
));
这里是belox如何渲染。我的问题是我想使用一个jquery选择器,事实是输入似乎已默认包含一些丑陋的小部件来选择日期。我的问题很简单。如何获得该默认日期选择器的簧片。提前感谢您的回复。干杯。马克
答案 0 :(得分:11)
编辑,因为symfony 2.6
您现在可以使用html5字段选项,例如:
->add('date', DateType::class, ['html5' => false]);
这将删除表单视图中的html5 type="date"
。
这是一个HTML5日期选择器。 html会有
type="date"
默认情况下由symfony输出,应该如此。
Chrome会看到这个并执行日期选择工具
解决问题的一些想法:
更改表单构建器中的格式:
$builder->add('date_created', DateType::class, array(
'widget' => 'single_text'));
在此处阅读更多内容:http://symfony.com/doc/current/reference/forms/types/date.html#format
删除浏览器datepicker:https://stackoverflow.com/a/11470344/744975
使用另一个javascript库中的一个覆盖浏览器datepicker:https://jqueryui.com/datepicker/(我的首选选项)
答案 1 :(得分:7)
从symfony 2.6
开始,您可以设置'html5' => false
以禁用HTML5类型。
示例:
$builder->add('establishment_date', 'date', array(
'label' => 'Establishment date',
'widget' => 'single_text',
'html5' => false,
));
答案 2 :(得分:5)
只需将默认类型更改为树枝内的文字:
{{form_widget(dateField, {'type':'text'})}}
答案 3 :(得分:4)
这不是来自Symfony的问题。当我生成日期字段时,我没有那种日期选择器。在不同的浏览器中检查您的页面和/或检查您可能已实现的一些捆绑包,这些捆绑包会生成此字段。
答案 4 :(得分:0)
你可以通过覆盖树枝主题中的form_widget_simple
来做到这一点(参见http://symfony.com/doc/current/cookbook/form/form_customization.html)
{% block form_widget_simple %}
{% spaceless %}
{% set type = type|default('text') == 'date' ? 'text' : type|default('text') %}
<input type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
{% endspaceless %}
{% endblock form_widget_simple %}