2016-04-15 328 views
0

如何在提交前檢查<input type="date">以驗證它是否超過當天的日期?驗證<input type =「date」>

如果將來的日期是在輸入表單將不會提交,

<html> 
<head> 
</head> 
<body> 
    <form> 
     <ul> 
      <li> 
       <label>Member Since </label> 
       <input id="since" name="since" size="2" maxlength="6" value="" type="date" required /> 
      </li> 
      <li> 
       <input type="Submit" name="Submit" id="btnsubmit" value="Submit" onclick="checkDate();" /> 
      </li> 
     </ul> 
    </form> 
</body> 
</html> 
+0

在您的checkDate函數中,從輸入字段檢索值。然後創建一個新的Date()對象,設置爲您希望確保輸入未超出的那一天。從那裏,你可以做兩個日期之間的簡單比較。 –

回答

2

嘗試將輸入值轉換爲Date Object以比較今天和腳本中的輸入值。

input = document.getElementById("since"); // gets element 
value = input.value; // form value (string) 
date = new Date(value); // converts string to date object 
now = new Date(); // current date 
if (now > date) { 
    // in past 
} else { 
    // in future 
} 
+0

謝謝你,夥計 它的工作原理 –

0

類似的東西應該幫助你。

var dateText = document.getElementById('since').value; 
var date = new Date(dateText); 
var now = new Date(); 
if (date > now) { 
    console.log("Date needs to be in the past"); 
} 
1

您需要檢查兩件事。
1)是輸入的有效日期,
2)是您想要的範圍內的日期。
嘗試下面的代碼,它會在允許提交之前檢查兩個條件。

<html> 
    <head></head>  
    <body>  
    <script> 
    function checkDate() { 
    var val = new Date(document.forms["frm"]["since"].value); 
    var now = new Date(); 
    if (isNaN(val.getTime()) || (val>now)) { 
     alert('invalid date'); 
     return false; 
     } 
     return true; 
    } 
    </script> 
     <form name="frm" onsubmit="return checkDate()"> 
    <ul> 
     <li> 
     <label>Member Since </label> 
     <input id = "since" name="since" size="2" maxlength="6" value="" type="date" required/> 
     </li> 
     <li> 
     <input type="Submit" name="Submit" id="btnsubmit" value="Submit" /> 
     </li> 
    </ul> 
    </form> 
</body> 
</html>