Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript表单验证,检查是否传递了日期_Javascript_Html - Fatal编程技术网

Javascript表单验证,检查是否传递了日期

Javascript表单验证,检查是否传递了日期,javascript,html,Javascript,Html,我正在尝试验证一个表单,我几乎完成了。唯一的问题是我无法找到一种方法来验证dates字段,以检查输入的日期是否已过。它必须通过Javascript来完成。。。顺便说一句,以下是HTML: <label for="reservationDate">Date of reservation (DD/MM/YYYY):</label> <input type="text" id="date" name="date" onblur="validateDate(date)"&

我正在尝试验证一个表单,我几乎完成了。唯一的问题是我无法找到一种方法来验证dates字段,以检查输入的日期是否已过。它必须通过Javascript来完成。。。顺便说一句,以下是HTML:

<label for="reservationDate">Date of reservation (DD/MM/YYYY):</label>

<input type="text" id="date" name="date" onblur="validateDate(date)">

<span id="dateError" style="display: none;">Please enter your date of reservation in this format DD/MM/YYYY</span>


希望有人能帮上忙:)

以下是一些代码,可以让您根据自己的需要给出具体的答案:

function validateDate(x) {
   var re = /^(\d{1,2})[-/.](\d{1,2})[-/.](\d{4})$/;
   var entered = new Date(document.getElementById(x).value);
   var today = new Date();
   if( entered > today ) {
        document.getElementById(x).style.background ='#ccffcc'; 
        document.getElementById(x + 'Error').style.display = "none"; 
        return true;
   } else{ 
        document.getElementById(x).style.background ='#e35152'; 
        document.getElementById(x + 'Error').style.display = "block"; 
        return false; 
   }
}
以下是经过测试的工作代码:

一些过去的答案是零碎的,但不是全部:


无论重复与否,这个非jquery解决方案请求在我所看到的所有方法中都没有完全完成,从头到尾。。。因此,为了安抚我的飞越者同胞的良心,鉴于这位优秀的新成员,我已经完成了一个答案。。。那不是花,那是流,呃。。。但也许它也结束了…如果这是一个重复的,你应该投票关闭它,而不是引用另一个问题作为答案。不是我的反对票,但链接的答案通常是不赞成的,“实际完成的代码”,另一方面,鼓励。顺便说一句,你似乎在这里链接到其他答案,所以这个问题将是重复的,是吗?谁否决了我,请重新考虑。我明白了。。。这是一个伟大的观点。。。我会在将来的任何情况下,比如这次,都会纠正过来。我认为这不是重复的,因为解决方案比我看到的更干净、更完整。这是值得为子孙后代解答的主要问题。谢谢你,无论你是谁,我荣誉的救世主。
function validateDate(x) {
   var re = /^(\d{1,2})[-/.](\d{1,2})[-/.](\d{4})$/;
   var entered = new Date(document.getElementById(x).value);
   var today = new Date();
   if( entered > today ) {
        document.getElementById(x).style.background ='#ccffcc'; 
        document.getElementById(x + 'Error').style.display = "none"; 
        return true;
   } else{ 
        document.getElementById(x).style.background ='#e35152'; 
        document.getElementById(x + 'Error').style.display = "block"; 
        return false; 
   }
}