只指定YEAR和MONTH作为输入日期的min/max属性

Specify only YEAR and MONTH for input date min/max attributes

本文关键字:日期 min 属性 max 输入 YEAR MONTH      更新时间:2023-09-26

我有以下内容:

<input type="date" max="2014-10-31">

可以只指定月吗?我猜应该是这样的:

<input type="date" max="2014-10-xx">

还是

<input type="date" max="2014-10">

(假设格式为yyyy/mm/dd)。

HTML完成剩下的工作。我不能指定日期,只能指定年和月(由服务器端提供),因为每个月有不同的最大天数(如2月,有28天)。所以,最大值不能是31。

当我把31 [day]为max属性,有28,30停止工作的月份,我的意思是,input变得奇怪,所以我也可以修改月份,但它不能发生,因为用户应该只能改变月和天是特定的

你可以这样写:

<input class="month-date" type="date" max="2014-02">
var els = document.getElementsByClassName("month-date");
for(var i=0, l=els.length; i<l; ++i) {
    var max = els[i].getAttribute('max').split('-');
    max.push(new Date(max[0], max[1], 0).getDate());
    els[i].max = max.join('-');
}

不行,你不能用HTML这样做。根据定义,in <input type="date" ...>中的max值必须是一个特定的日期,并且必须是一个有效的日期。

在生成HTML标记时,应该计算预期月份的最后一天。

是的,你可以这样使用:

Date(day/month/year): <input type="date" value="2017-07-20" min="2000-01-01" max="2020-01-01">
<hr />
Date(Month/Year): <input type="month" value="2017-07" min="2000-01" max="2020-01">
<hr />
Date(year): <input type="number" value="2017" min="2000" max="2020">

实时演示:https://jsfiddle.net/2fupfqgz/2/