Dear friends,the following code validates date entered in text field for valid month,year,special characters,day,february checks etc,. Date validation library search in the internet sent me nowhere near a great solution,so i decided to create my own set of code and share it with all
return true;
var d1;
var d2;
var d3 = new Date();
var day3 = d3.getDate();
var m3 = d3.getMonth() +1;//jan is usually 0 in js
var y3 = d3.getFullYear();
if(day3<10){
day3='0'+day3;
}
if(m3<10){
m3='0'+m3;
}
var todaystr =m3 +'/'+day3+'/'+y3;
var todaydt = new Date(todaystr);
var v_erpStartDate = document.getElementById('newSRPage:mainform:templatepg:erpStartDateStr').value;
var v_erpEndDate = document.getElementById('newSRPage:mainform:templatepg:erpEndDateStr').value;
if (v_erpStartDate == '') {
alert('Start Date is required');
return false;
}
var v_erpStartDate1 = new Date(v_erpStartDate);
/* if (v_erpStartDate1 > todaydt){
alert('Start Date cannot be greater than today');
return false;
}*/
if (v_erpStartDate1 <todaydt){
alert('Start Date cannot be lesser than today');
return false;
}
if(!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(v_erpStartDate)){
alert('Invalid Start Date format. Please enter in correct format: mm/dd/yyyy');
return false;
}
if (v_erpEndDate == '') {
alert('End Date is required');
return false;
}
if(!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(v_erpEndDate)){
alert('Invalid End Date format. Please enter in correct format: mm/dd/yyyy');
return false;
}
var datearray = v_erpStartDate.split("/");
if (parseInt(datearray[0]) > 12||parseInt(datearray[0]) <1 || datearray[0].length<2){
alert('Invalid month entered in Start Date. Please enter in correct format: 01 - 12');
return false;
}
if((parseInt(datearray[0]) == 4 || parseInt(datearray[0]) == 6 || parseInt(datearray[0]) == 9 || parseInt(datearray[0]) ==11) &&(parseInt(datearray[1]) > 30)){
alert('Last date for the month entered in Start Date cannot be greater than 30');
return false;
}
if(parseInt(datearray[0]) == 2 && parseInt(datearray[1]) > 28)
{
alert('Last date for the month entered in Start Date cannot be greater than 28');
return false;
}
if (parseInt(datearray[1]) > 31||parseInt(datearray[1]) <1 || datearray[1].length<2){
alert('Invalid day entered in Start Date. Please enter in correct format: 01 -31');
return false;
}
if (parseInt(datearray[2]) > 2040 ||parseInt(datearray[2]) <2014 || datearray[2].length<4){
alert('Invalid year entered in Start Date. Please enter in correct format and within range : 2014 -2040');
return false;
}
d1 = new Date(parseInt(datearray[2]),parseInt(datearray[0]),parseInt(datearray[1]));
datearray = v_erpEndDate.split("/");
if (parseInt(datearray[0]) > 12||parseInt(datearray[0]) <1 || datearray[0].length<2){
alert('Invalid month entered in End date. Please enter in correct format: 01 - 12');
return false;
}
if (parseInt(datearray[1]) > 31||parseInt(datearray[1]) <1 || datearray[1].length<2){
alert('Invalid day entered in End Date. Please enter in correct format: 01 -31');
return false;
}
if (parseInt(datearray[2]) > 2040 ||parseInt(datearray[2]) <2014 || datearray[2].length<4){
alert('Invalid year entered in End Date. Please enter in correct format and within range: 2014 -2040');
return false;
}
d2 = new Date(parseInt(datearray[2]),parseInt(datearray[0]),parseInt(datearray[1]));
if(d1>d2){
alert('End Date cannot be earlier than Start Date');
return false;
}
return true;
No comments:
Post a Comment