验证<input type =“date”/>

时间:2016-04-15 02:15:28

标签: javascript html5

如何在提交之前检查 <script> function allowDrop(ev) { ev.preventDefault(); } function drag(ev) { ev.dataTransfer.setData("text", ev.target.id); } function drop(ev) { ev.preventDefault(); var data = ev.dataTransfer.getData("text"); ev.target.appendChild(document.getElementById(data)); var ele = document.getElementById(data); console.log(document.getElementById(data).name); ajax_post(ele); } // ----AJAX Post to PHP-----> function ajax_post(ele){ // Create our XMLHttpRequest object var hr = new XMLHttpRequest(); // Create some variables we need to send to our PHP file var url = "insert.php"; var imgName = ele.name; var imgId = ele.id; var vars = "imgName="+imgName+"&imgId="+imgId; hr.open("POST", url, true); // Set content type header information for sending url encoded variables in the request hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // Access the onreadystatechange event for the XMLHttpRequest object hr.onreadystatechange = function() { if(hr.readyState == 4 && hr.status == 200) { var return_data = hr.responseText; document.getElementById("status").innerHTML = return_data; } } // Send the data to PHP now... and wait for response to update the status div hr.send(vars); // Actually execute the request document.getElementById("status").innerHTML = "processing..."; } </script> 以确认它是否超过今天的日期?

如果未来日期在输入中,则表单将不会提交

<input type="date">

3 个答案:

答案 0 :(得分: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
}

答案 1 :(得分: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>

答案 2 :(得分: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");
}