日期输入中的不变日

时间:2018-06-14 13:35:08

标签: html5 validation input

有没有办法强制HTML5中的日期输入要求一个月的第一天作为唯一选项? 假设我使用格式dd/mm/yyyy,则允许日期为“ 01/12/2012 ”,而“ 02/12/2012 ”则不会。< / p>

换句话说,用户将能够更改月份或年份,但不能更改值为“ 01 ”的不可变的日期。

注意:我能够用javascript做到这一点,但坦率地说这似乎有点过头了,需要做更多的工作来提供良好的用户体验,我认为这是应该/可能的事情处理模式,但在互联网上找不到任何东西,因为似乎HTML输入日期中的模式不提供验证(只有minmax属性这样做)。这是JS代码:

var e = document.getElementById("date_input");

var date = new Date(e.value);
var day = date.getDate();

if( day !== 1 ){
    var month = date.getMonth();
    if(month.length < 2) {
        month = "0"+month;
    }; 
    document.getElementById("date_input").value = date.getFullYear()+"-"+month+"-01";
}

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

<!DOCTYPE html>
<html>
<head>
<script>
    function dateCheck(){
             var e = document.getElementById("inpDate");

             var date = new Date(e.value);
             var day = date.getDate();


             if(day!=1){
                        document.getElementById ("errDisplay").innerHTML="Wrong input. Please enter correct day (First day of the month)"; 
                        }
    }
</script>
</head>
<body>

  <h2>Date Field Restrictions</h2>
  <h6> Enter a date: </h6>
  <input type="date" name="date" id="inpDate">
  <button type="button" onclick="dateCheck()">Try it</button>
  <p id="errDisplay"></p>

</body>
</html>