HTML:输入类型日期和月份范围

Posted

技术标签:

【中文标题】HTML:输入类型日期和月份范围【英文标题】:HTML: Input type date and range of months 【发布时间】:2019-10-30 20:16:10 【问题描述】:

我正在尝试使用input type="date" 制作一个html 表单,该表单将是几个月而不是几年的范围。例如,我需要用户选择一个日期,范围从 3 月到 10 月,但包含所有可用年份(2019、2020、2021...)。

我知道属性minmax 的选项,但我们必须填写整个特定日期,我只需要一个月份范围。

minmax 的代码:

<input type="date" min="2019-03-01" max="2019-10-31">

是否有任何选项可以使用清晰的 HTML 或我们必须使用 javascript

【问题讨论】:

我认为您正在寻找日期选择器。检查jqueryui.com/datepicker @PraveenGopal 我认为.datepicker() 对这个问题没有帮助,因为.datepicker() 仍然允许用户更改年份。 How to hide the year part in Html <input type="date"> calendar panel?的可能重复 @A.Meshu 该答案限制了输入,但不会删除选择年份的选项。并且在我的系统上根本无法正常工作......我认为没有办法解决这个问题。他将不得不走 JS 路线。 @Ryan 再次阅读后我完全同意。 【参考方案1】:

不幸的是,没有办法消除 HTML 日期输入中的“年份”部分,考虑到它在不同平台上的实现截然不同,这是有道理的。

JS 会让你构建你想要的东西,但是要确保跨平台的可靠性会更加困难。这是一个选项,您可以使用日期输入但对其进行限制,然后使用 JS 剥离响应,尽管这实际上并没有隐藏更改年份的选项。

How to hide the year part in Html <input type="date"> calendar panel?

这是一个类似的 SO 答案,它可能会引导你走上一条路径来操纵 jquery 的 datepicker 来做你想做的事:

https://***.com/a/10243049/1650488

最终,坚持使用原生 HTML 元素而不是滚动自己的解决方案有很多好处,所以我个人会查看工作流程并尝试使用原生日期选择器使其有意义。

如果本机元素真的不起作用,构建您自己的输入(例如分别选择日期和月份范围)可能是有意义的,但是您可能会遇到不同长度的月份的麻烦,这将很难管理无障碍设备,例如屏幕阅读器。

【讨论】:

以上是关于HTML:输入类型日期和月份范围的主要内容,如果未能解决你的问题,请参考以下文章

Firefox 输入类型 = 日期最小值未在最小有效月份打开

Java - 在指定的给定月份 - 年份范围内打印每个月的第一个和最后一个日期

输入月份的 html 不允许从数据库中获取动态日期?

禁用日期范围内的键盘输入闪亮

C#中日期怎样限制

SQL Server:列出范围之间的月份