2013-12-08 3 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-past-javascript) –

+0

дубликат или нет, этот запрос на не-jquery-запрос не был выполнен действительно во всех методах, которые я видел, начинаю заканчивать ... поэтому, чтобы успокоить совесть моих коллег-переползающих, и в свете этого прекрасного нового члена, я завершил ответ ... и это не было излишеством над потоком *, но ... возможно, * flower * too ... – 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

Если это дубликат, вы должны проголосовать, чтобы закрыть его как таковой, а не цитировать другой вопрос в качестве ответа. –

+0

Не мое голосование, но ссылки, как правило, не одобряются, с другой стороны, «действительно выполненный код». Кстати, вы, кажется, ссылаетесь на другие ответы здесь, на [SO], так что этот вопрос будет дублировать, да? –

+0

Кто бы ни отклонил меня, пожалуйста, передумайте. Я понимаю ... это отличный момент ... и я приду правильно в * всех * будущих ситуациях, таких как этот. Я думаю, это не дубликат, потому что решение является более чистым и более полным, чем то, что я видел. Это стоит быть главным ответом для потомков. – digitalextremist

Смежные вопросы