【问题标题】:input date - preselect year without setting value?输入日期 - 预选年份而不设置值?
【发布时间】:2021-06-07 13:56:49
【问题描述】:

<input type="date" name="birthday" id="birthdate" required="">

我想预先选择日期选择器的年份(假设是 16 年前),因此用户可能不需要从今天的日期开始,点击返回到他们的出生年份。

如果我使用value="2005-01-01",则日期是预先选择的,而且输入具有:valid 值,因此该字段不会显示:invalid 样式(因为它是必填字段,它具有与@987654325 不同的样式@ 选择器,如果它为空或语法错误)。所以基本上它不再是必填字段,因为它有一个有效值,并且用户不需要输入或更改日期来发送表单。

有什么建议吗?

【问题讨论】:

    标签: html forms datepicker


    【解决方案1】:

    您可以做的最好的事情是使用 JavaScript 更改输入更改的年份。像这样:

    var chosenYear = 2000;
    var datepicker = document.getElementById("birthdate");
    datepicker.addEventListener("change", ()=>{
      datepicker.value = chosenYear+datepicker.value.substring(4);
    })
    Please choose your birthdate. <b>The year will automatically be set to 2000.</b>
    <br/><br/>
    <input type="date" name="birthday" id="birthdate" required="">

    【讨论】:

    • 这不允许再选择 2000 年之后的年份。
    • onfocus="(this.value='2005-01-01')" 是迄今为止我发现的最好的。但它仍然不能确保用户输入生日/填写该字段。
    猜你喜欢
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    相关资源
    最近更新 更多