Symfony 2 - 如何删除日期字段类型的默认日期选择器?

Mar*_*arc 3 forms orm symfony doctrine-orm

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

$builder->add('date_naissance', 'date', array(
            'input'  => 'datetime',
            'widget' => 'single_text',
        ));
Run Code Online (Sandbox Code Playgroud)

这里是belox如何呈现.我的问题是,我想使用一个jquery选择器,事实是输入似乎已默认包含一些丑陋的小部件来选择日期.我的问题很简单.如何获得该默认日期选择器的簧片.提前感谢您的回复.干杯.渣

在此输入图像描述

And*_*son 12

编辑,自symfony 2.6

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

->add('date', DateType::class, ['html5' => false]);
Run Code Online (Sandbox Code Playgroud)

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


这是一个HTML5日期选择器.HTML会有

type="date"
Run Code Online (Sandbox Code Playgroud)

默认情况下由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. 删除浏览器datepicker:https://stackoverflow.com/a/11470344/744975

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


b.b*_*4rd 8

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

例:

$builder->add('establishment_date', 'date', array(
        'label'   => 'Establishment date',
        'widget'  => 'single_text',
        'html5'   => false,
));
Run Code Online (Sandbox Code Playgroud)


val*_*lis 5

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

{{form_widget(dateField, {'type':'text'})}}
Run Code Online (Sandbox Code Playgroud)