javascript 日期输入中显示的默认月份

qni6mghb  于 2023-04-19  发布在  Java
关注(0)|答案(1)|浏览(114)

我们有简单的日期输入:

<input type="date" id="inp_DateDep"  />

单击输入时,我们希望显示的默认月份为八月。
我可以将最小值设置为每月的第一天,如下所示:

<input type="date" id="inp_DateDep" min="2023-08-01" />

但是如果我这样做了,那么用户就不能选择8月1日之前的日期,在一些罕见的情况下,他们需要选择7月的日期,但更常见的是8月。
简而言之,有没有一种方法可以在不设置默认值也不使用min属性的情况下选择在type="date"输入中显示的默认月份?

rwqw0loc

rwqw0loc1#

您可以为focuschangeblur添加事件侦听器,以使默认值出现 * 如果 * 用户没有显式选择日期:

const input = document.querySelector('#inp_DateDep');
const defaultDate = '2023-08-01';

input.usingDefault = true;

input.addEventListener('focus', () => {
  if (input.usingDefault) {
    input.value = defaultDate;
  }
});

input.addEventListener('change', () => {
  input.usingDefault = false;
});

input.addEventListener('blur', () => {
  if (input.usingDefault) {
    input.value = '';
  }
});
<input type="date" id="inp_DateDep">

但有一个小问题:输入可能会在不显示日期选择器的情况下获得焦点。有关解决方法,请参阅this question

相关问题