Javascript表单验证,检查日期是否通过

时间:2013-12-08 21:14:56

标签: javascript html

我正在尝试验证表单,我差不多完成了。唯一的问题是我无法弄清楚验证日期字段的方法,以检查已放入的日期是否未通过。它必须通过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>

这是Javascript:

function validateDate(x) {
   var re = /^(\d{1,2})[-/.](\d{1,2})[-/.](\d{4})$/;
   if(re.test(document.getElementById(x).value)){ 
        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; 
   }
}

希望有人可以提供帮助:)

1 个答案:

答案 0 :(得分:0)

以下是一些代码,使其成为满足您需求的特定答案:

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; 
   }
}

以下是经过测试的有效代码:http://jsfiddle.net/digitalextremist/rwhhg/1/

过去的一些答案是件,但不是真正的整个交易: