Whenever I have this combination of three DropDownLists to receive a date for input, I use this little script to validate whether the given date is an actual date or not. You know: preventing the user inputting 30 February or something like that.
I knicked it from some site or other, but I can’t remember where exactly, so if you recognize this script and believe I should give you credit, just let me know and I’ll fix things up.
function isDate(dateStr) {
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
alert(“Please enter your birth date as dd/mm/yyyy. Your current selection reads: ” + dateStr);
return false;
}
day = matchArray[1]; // p@rse date into variables
month = matchArray[3];
year = matchArray[5];
if (month < 1 || month > 12) { // check month range
alert(“Month must be between 1 and 12.”);
return false;
}
if (day < 1 || day > 31) {
alert(“Day must be between 1 and 31.”);
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert(“Month “+month+” doesn`t have 31 days!”);
return false;
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
alert(“February ” + year + ” doesn`t have ” + day + ” days!”);
return false;
}
}
return true; // date is valid
}
function checkForValidDate(){
var ddlVMonth = document.getElementById(“_ctl0_DropDownListMaanden”);
var ddlVDay = document.getElementById(“_ctl0_DropDownListDagen”);
var ddlVYear = document.getElementById(“_ctl0_DropDownListJaren”);
if (!isDate(ddlVDay.value + ‘/’ + ddlVMonth.value + ‘/’ + ddlVYear.value))
{ return(false); }
return(true);
}
Technorati Tags: javascript, date
July 5, 2006 at 20:47
cool!
LikeLike
January 7, 2008 at 14:32
thanks!
LikeLike
March 17, 2008 at 02:03
works great
LikeLike
November 10, 2008 at 10:51
Wow ! Super elegant script ! Thanks a lot ! I love simple and working scripts !!
LikeLike
December 7, 2008 at 14:32
Thanks a lot, it helped me greatly ….
LikeLike
December 22, 2008 at 16:19
Thx a lot. It help me much ^_^
LikeLike
December 22, 2008 at 22:43
Thanks Buddy
LikeLike
January 19, 2009 at 18:36
Thanks a lot! đŸ™‚
LikeLike
February 24, 2009 at 10:54
Great Code
LikeLike
August 26, 2011 at 12:24
Sweet. Thanks for that. One thing more for the snippets folder! Keep up the good Work!
LikeLike