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

Posted

技术标签:

【中文标题】Symfony 2 - 如何删除日期字段类型的默认日期选择器?【英文标题】:Symfony 2 - How to remove the default date picker of the Date Field Type? 【发布时间】:2012-12-30 22:43:15 【问题描述】:

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

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

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

【问题讨论】:

如果这仍然困扰您,请查看更新后的答案以获得最优雅的解决方案:***.com/a/14362310/744975 【参考方案1】:

编辑,自 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

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

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

【讨论】:

【参考方案2】:

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

例子:

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

【讨论】:

【参考方案3】:

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

form_widget(dateField, 'type':'text')

【讨论】:

【参考方案4】:

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

【讨论】:

我在那儿。感谢您尝试提供帮助。你的回答是一个很好的提示。我尝试使用 Safari 而不是 Chrome 呈现页面,并且那个丑陋的日期选择器消失了。我现在必须弄清楚它是否真的来自 Chrome,如果是的话,如何删除它......【参考方案5】:

您可以通过在 twig 主题中覆盖 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 %

【讨论】:

以上是关于Symfony 2 - 如何删除日期字段类型的默认日期选择器?的主要内容,如果未能解决你的问题,请参考以下文章

禁用 Symfony 2 类型中选择字段的后端验证

sqlserver 日期字段 索引问题

在 Symfony 中保存数据库时如何保留 updated_at 日期字段?

mysql 更新某个表日期字段 为当前表的例外一个日期字段 的前7天

mysql记录根据日期字段倒序输出

Linq中,怎么写日期类型字段的Where条件语句