Friday, 19 October 2012

date validation in javascript

<script language="javascript" type="text/javascript">
function checkdate(txt)
{

var dtObj = 'ctl00_ContentPlaceHolder1_'+txt

    var dtObj=document.getElementById(dtObj)
    var dtStr=dtObj.value;
   

 var dtTemp=dtStr;

 if(dtStr=='')      
 {
   alert('Date cant be blank')
   dtObj.value=""
   return false
 }
 if(dtTemp.indexOf('/')==-1)
 {
   alert('Invalid Date.\nPlease enter date in dd/mm/yyyy format.')
   dtObj.value=""
   return false
 }

 dtTemp=dtTemp.substring(dtTemp.indexOf('/')+1)

 if(dtTemp.indexOf('/')==-1)
 {
  alert('Invalid Date.\nPlease enter date in dd/mm/yyyy format.')
  dtObj.value=""
  return false
 }
    //check for parts of date
    var DayDt
    var MonDt
    var YearDt
   
    dtTemp=dtStr
    DayDt=dtTemp.substring(0,dtTemp.indexOf('/'))
    dtTemp=dtTemp.substring(dtTemp.indexOf('/')+1)
    MonDt=dtTemp.substring(0,dtTemp.indexOf('/'))
    YearDt=dtTemp.substring(dtTemp.indexOf('/')+1)
    if(YearDt.length!=4)
    {
     alert('Invalid Date.Year should be in 4-digits.')
     dtObj.value=""
     return false
    }
   
    //alert("Day :" + DayDt + " Mon:" + MonDt + " Year:" + YearDt)
    if(isNaN(DayDt) || isNaN(MonDt) || isNaN(YearDt))
    {
     alert("Invalid Date.\nPlease enter date in dd/mm/yyyy format.")
     dtObj.value=""
     return false
    }
    var DateEntered=new Date()
    DateEntered.setFullYear(YearDt,parseInt(MonDt)-1,DayDt)
   
   
    if(DateEntered.getMonth()!=(parseInt(MonDt)-1))
    {
     alert("Invalid Date.\nPlease enter date in dd/mm/yyyy format.")
     dtObj.value=""
     return false
    }
   
                var str2 = new Date();
                var s=str2.format("dd/MM/yyyy");     
                var dt1  = parseInt(dtStr.substring(0,2),10);    
                var mon1 = parseInt(dtStr.substring(3,5),10);
                var yr1  = parseInt(dtStr.substring(6,10),10);
                var dt2  = parseInt(s.substring(0,2),10);   
                var mon2 = parseInt(s.substring(3,5),10);        
                var yr2  = parseInt(s.substring(6,10),10);
                var date1 = new Date(yr1, mon1, dt1);   
                var date2 = new Date(yr2, mon2, dt2);
    if(date2 < date1)
                 {
                   alert("To date cannot be greater than from current date");
                   dtObj.value=""
                   return false
                }              
     }
</script>

on page load
-------------------------
 txtDateFrom.Attributes.Add("onchange", "checkdate('txtDateFrom')");

No comments:

Post a Comment