3

在我的 formType 中,我使用以下内容来呈现我的日期字段类型。

$builder->add('date_naissance', 'date', array(
            'input'  => 'datetime',
            'widget' => 'single_text',
        ));

这里 belox 它是如何呈现的。我的问题是我想使用 jquery 选择器,问题是默认情况下输入似乎已经包含一些丑陋的小部件来选择日期。我的问题很简单。我怎样才能得到那个默认日期选择器的芦苇。预先感谢您的回复。干杯。马克

在此处输入图像描述

4

5 回答 5

13

编辑,从 symfony 2.6 开始

您现在可以使用 html5 字段选项,例如:

->add('date', DateType::class, ['html5' => false]);

这将删除type="date"表单视图上的 html5。


它是一个 HTML5 日期选择器。html将有

type="date"

默认情况下由 symfony 输出。

Chrome 会看到这一点并执行日期选择器,

解决您的问题的一些想法:

  1. 在表单生成器中更改格式:

    $builder->add('date_created', DateType::class, array( 'widget' => 'single_text'));

    在这里阅读更多:http: //symfony.com/doc/current/reference/forms/types/date.html#format

  2. 删除浏览器日期选择器:https ://stackoverflow.com/a/11470344/744975

  3. 用另一个javascript库中的一个覆盖浏览器日期选择器:https ://jqueryui.com/datepicker/ (我的首选)

于 2013-01-16T15:47:44.413 回答
9

从 symfony 开始,2.6您可以设置'html5' => false以禁用 HTML5 类型。

例子:

$builder->add('establishment_date', 'date', array(
        'label'   => 'Establishment date',
        'widget'  => 'single_text',
        'html5'   => false,
));
于 2015-03-23T03:12:35.077 回答
5

只需将默认类型更改为树枝内的文本:

{{form_widget(dateField, {'type':'text'})}}
于 2013-02-21T17:37:16.823 回答
4

这不是来自 Symfony 的真正问题。生成日期字段时,我没有那种日期选择器。在不同的浏览器中检查您的页面和/或检查您可能已经实现的一些捆绑包,这些捆绑包会生成此字段。

于 2013-01-16T15:10:08.167 回答
0

您可以通过覆盖form_widget_simpletwig 主题来做到这一点(请参阅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 %}
于 2013-08-02T14:51:15.367 回答