【问题标题】:Javascript form validation, check if date is passedJavascript表单验证,检查日期是否已过
【发布时间】:2013-12-08 21:14:55
【问题描述】:

我正在尝试在这里验证一个表单,我几乎完成了。唯一的问题是我想不出一种验证日期字段的方法来检查输入的日期是否还没有过去。它必须通过 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; 
   }
}

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

【问题讨论】:

  • 重复与否,这个非 jquery 解决方案请求在我看到的所有方法中并没有真正干净地完成,从头到尾......所以为了安抚我的同胞们的良心,并在光这位优秀的新成员,我已经完成了一个答案......那不是过度的flow er ...但也许它是over-flower太……

标签: javascript html


【解决方案1】:

这里有一些代码可以使它成为满足您需求的特定答案:

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/

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

【讨论】:

  • 如果这是重复的,您应该投票关闭它,而不是引用另一个问题作为答案。
  • 不是我的反对票,而是仅链接的答案通常不受欢迎,另一方面,鼓励“实际完成的代码”。顺便说一句,您似乎在Stack Overflow 上链接到其他答案,所以这个问题将是重复的,是吗?
  • 谁对我投了反对票,请重新考虑。我明白了......这是一个很好的观点......而且我会在所有未来的情况下,比如这个。我认为这个不是重复的,因为解决方案比我看到的更干净、更完整。这值得成为后人的主要答案。
  • 谢谢你,无论你是谁,我荣誉的救星。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-31
  • 2010-10-26
  • 2012-01-08
  • 1970-01-01
  • 2019-03-27
  • 2021-01-24
  • 2011-07-20
相关资源
最近更新 更多