Abhi
Abhi

Reputation: 1255

Javascript to validate date entered

I am new to Javascript programming and I am trying to validate a date entered into an <input> from a calender snippet which is obtained from an external Javascript file. I am trying to validate the date to check if the user entered a past date. If the entered date is a past date, then I need to print a warning message to enter a valid date in future period.

I accept input date field in following HTML code:

<input size="12" id="inputField" name="inputField"  autofocus="" type="date"     oninput="return dateValidate(inputField)"/>

My Javascript function to validate input date is:

<script type="text/javascript">
function dateValidate(inputField)
{

 var v2 = document.getElementById('inputField');
 var pickeddate = new Date(v2.Value);
 todayDate = new Date();
 if(pickeddate > todayDate){
    return true;
 } else {
    alert("Enter a valid Date");
 }
}

But this code doesn't seem to be working. I want this Javascript function to be run when I enter a past date in the <input> field and tab out. I want to validate date when it is entered in the field, not when the form is submitted.

Upvotes: 2

Views: 4672

Answers (2)

The Alpha
The Alpha

Reputation: 146269

You may try this

HTML

<input size="12" id="inputField" name="inputField"  autofocus="" type="date"     onblur="return dateValidate(this)"/>

JS

function dateValidate(inputField)
{
    var pickeddate =  new Date(inputField.value);
    var todayDate =  new Date();
    if( pickeddate > todayDate )
    {
       return true;
    }
    else
    {
        alert("Enter a valid Date");
    } 
}

DEMO.

Upvotes: 2

palaѕн
palaѕн

Reputation: 73966

It is not working since there is a issue in your code, just replace this:

var pickeddate = new Date(v2.Value);

with this:

var pickeddate = new Date(v2.value);   // 'value' should be in lower case

Since, it was not correct, the pickeddate was always undefined and code didn't worked.

Upvotes: 4

Related Questions