【问题标题】:Invariable day in date-input日期输入中的不变日期
【发布时间】:2018-06-14 13:35:07
【问题描述】:

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

换句话说,用户将能够更改月份或年份,但不能更改日期,这将在值“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";
}

【问题讨论】:

    标签: html validation input


    【解决方案1】:

    试试这个代码:

    <!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>
    

    【讨论】:

      猜你喜欢
      • 2015-03-17
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多