2013-12-08 93 views
1

我想在這裏驗證一個表單,我差不多完成了。唯一的問題是我無法找出一種驗證日期字段的方法,以檢查輸入的日期是否未通過。它要通過JavaScript做......順便說一句,這裏是HTML:Javascript表單驗證,檢查日期是否通過

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

希望有人能幫助:)

+0

可能[檢查日期是否在過去的Javascript](http://stackoverflow.com/questi ons/8305259/check-if-date-is-in-the-the-javascript-javascript) – 2013-12-08 21:22:26

+0

重複與否,這個非jquery解決方案請求在我看到的所有方法中並沒有真正做到,開始完成...所以爲了安撫我的同伴們的良知,並且鑑於這位優秀的新成員,我已經完成了一個答案...並且那不是過度流動,而是超過了流動呃......但也許它是過度的, *花*太... – digitalextremist

回答

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/

過去的一些答案,這是件,但沒有真正的整體成交:

+1

如果這是重複的,你應該投票結束它,而不是引用另一個問題作爲答案。 – 2013-12-08 21:23:14

+0

不是我的倒票,而是通常不贊成鏈接的答案,另一方面鼓勵「實際完成的代碼」。順便說一下,你似乎在[SO]上鍊接到其他答案,所以這個問題會是重複的,是的? –

+0

誰低估了我,請重新考慮。我明白了......這是一個很好的觀點......我將在諸如此類的所有未來情況中得到正確的答案。我認爲這一個不是重複的,因爲解決方案比我看到的更加清晰和完整。這值得成爲後人的主要答案。 – digitalextremist