Date Firefox输入类型=日期最小值未在最短有效月份打开
我不确定是否有办法解决这个问题,但是当您使用Date Firefox输入类型=日期最小值未在最短有效月份打开,date,firefox,input,datepicker,Date,Firefox,Input,Datepicker,我不确定是否有办法解决这个问题,但是当您使用input type=“date”和min=属性时,Firefox并不能很好地发挥作用:它总是在当前月份打开日期选择器,而不是在最小有效日期开始的月份。如果日期是在未来,这尤其令人讨厌 例如: (请参阅Firefox中的。) 用户必须手动滚动几个月,直到最终找到可用的。不太理想 绕过此行为的一种方法是按照注释中的建议为输入设置一个值。与在HTML中设置value属性不同,您可以尝试在用户单击输入并显示日期选择器时以编程方式进行设置 我认为focus
input type=“date”
和min=
属性时,Firefox并不能很好地发挥作用:它总是在当前月份打开日期选择器,而不是在最小有效日期开始的月份。如果日期是在未来,这尤其令人讨厌
例如:
(请参阅Firefox中的。)
用户必须手动滚动几个月,直到最终找到可用的。不太理想 绕过此行为的一种方法是按照注释中的建议为输入设置一个值。与在HTML中设置value
属性不同,您可以尝试在用户单击输入并显示日期选择器时以编程方式进行设置
我认为focus
/focusin
是捕捉的最佳事件,因为据我所知,没有show
/open
事件
在上,在事件部分中只提到了更改
和输入
这里有一个活样本:
var dateControl=document.querySelector('input[type=“date”]”);
addEventListener(“焦点”,函数(){
//您可以添加对值的验证
if(this.min&!this.value){
this.value=this.min;
}
});代码>
我知道这不是一个很好的解决方案,因为浏览器随时都可能被欺骗
但这也应该奏效
HTML:
如果是Firefox,您可以识别客户端的浏览器,并通过此JS自动将日期更改为最小日期:
if (navigator.userAgent.indexOf("Firefox") != -1) {
document.getElementById("dateInput").value = document.getElementById("dateInput").min;
}
可以使用“值”属性设置默认值
<input type="date" min="2021-08-04" value="2021-08-04">
日期选择器显示您输入的月份的日历。如果您在月份部分输入08,它将显示8月份的日历,@ildflue我真的不明白您的意思,您可以添加默认值吗
缺点是您必须添加一个默认值。谢谢,如果无法以本机方式告诉FF,这似乎是最好的解决方案“注意:在Internet Explorer 10+或Firefox中,min属性不适用于日期和时间,因为IE 10+和Firefox不支持这些输入类型。”这是您的最佳选择。。。