在引导程序日期选择器中禁用日期的自动格式化

Posted

技术标签:

【中文标题】在引导程序日期选择器中禁用日期的自动格式化【英文标题】:Disable Auto formatting of date in bootstrap datepicker 【发布时间】:2018-05-29 02:06:57 【问题描述】:

如果有人在日期选择器中手动输入无效日期(例如“%/4/12”),它会自动将其格式化为“04/12/2017”,或者如果您输入“12/123/20258”,则会出现问题格式为我不想要的 '12/12/2025。有什么办法可以禁用它吗?这是我已经拥有的:

$(function () 
        $('#new-effective-date').datetimepicker(
            format: 'MM/DD/YYYY',
            defaultDate: false,
            useCurrent: false,
            keepInvalid: true
        );
    );

【问题讨论】:

您可以将日期选择器文本框设为只读,这将阻止手动数据输入。 你告诉它保留无效条目 @charlietfl 它确实保留了无效文本,但如果您输入“%/4/12”,它会出于某种原因自动格式化为“04/12/2017”或者如果您输入“12/123/ 20258" 它格式化为 '12/12/2025 @akerra 我做不到,只有键盘的人无法访问它。 似乎您需要覆盖 $('#new-effective-date').change() 事件,执行 preventDefault(),并实现一些自定义逻辑来格式化输入(或丢弃它)。 【参考方案1】:

添加:

useStrict

http://eonasdan.github.io/bootstrap-datetimepicker/Options/#usestrict

并将您的代码更改为:

$(function () 
        $('#new-effective-date').datetimepicker(
            format: 'MM/DD/YYYY',
            useStrict: true,
        keepInvalid: true,
        );
    );

【讨论】:

不幸的是,这不起作用,它仍然让我输入“12/123/20258”,它会自动格式化为“12/12/2025”。 猜你可以深入你的代码,我给出的答案已经完全解决了我同样的问题。

以上是关于在引导程序日期选择器中禁用日期的自动格式化的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Twitter 引导日期选择器中禁用结束日期范围?

在引导日期选择器中禁用过去的日期

在引导日期选择器中启用特定日期

如何在引导日期选择器中更改日期格式(dd-mmm-yyyy)

如何使用引导模式更新引导日期时间选择器中的默认日期

在日期选择器中禁用选定日期的日期