Asp.net Date Confirmation with Three Dropdowns

I have three drop-down lists for the day month and year. Now I want to check this selected date in asp.net using javascript or the built-in asp.net check control.

thanks......

+4
source share
5 answers

This is the java script code to confirm the date format:

<script language="javascript" type="text/javascript"> function ValidateDate(args) { var date=args.Value; var arr=date.split('/'); if(arr.length!=3) { args.IsValid=false; return; } var day; if(arr[1]=='08') { day=parseInt('8'); } else if(arr[1]=='09') { day=parseInt('9'); } else { day=parseInt(arr[1]); } var month; if(arr[0]=='08') { month=parseInt('8'); } else if(arr[0]=='09') { month=parseInt('9'); } else { month=parseInt(arr[0]); } var year=parseInt(arr[2]); var boolday=false; var boolmonth=false; var boolyear=false; if(!isNaN(year)) { if(1800<year&&year<2100) { boolyear=true; } } if(!isNaN(month)) { if(0<month&&month<13) { boolmonth=true; } } if(!isNaN(day)) { var val=32; if(boolmonth) { if(month==2) { if(boolyear) { if(year%4==0) { val=30; } else { val=29; } } } else if(month==4||month==6||month==11||month==9) { val=31 } } if(0<day&&day<val) { boolday=true; } } if(boolyear&&boolmonth&&boolday) { args.IsValid=true; } else { args.IsValid=false; } } </script> 

And you can confirm the date entered in 3-DropDownList by concatenating the three values ​​and passing it to a function

0
source

Using a custom validator:

 protected void dobCustomValidator_ServerValidate(object sender, ServerValidateEventArgs e) { CustomValidator validator = (CustomValidator) sender; ddlDateofBirthDay = (DropDownList)validator.Parent.FindControl("ddlDateofBirthDay"); ddlDateofBirthMonth = (DropDownList)validator.Parent.FindControl("ddlDateofBirthMonth"); ddlDateofBirthYear = (DropDownList)validator.Parent.FindControl("ddlDateofBirthYear"); if (ddlDateofBirthDay.SelectedIndex == 0 || ddlDateofBirthMonth.SelectedIndex == 0 || ddlDateofBirthYear.SelectedIndex == 0) { e.IsValid = false; } else { string dateOfBirthString = ddlDateofBirthDay.SelectedItem.Value + "/" + dateTools.MonthNumber(ddlDateofBirthMonth.SelectedItem.Value) + "/" + ddlDateofBirthYear.SelectedItem.Value; try { DateTime.Parse(dateOfBirthString, Culture); } catch { e.IsValid = false; } } } 
0
source

See below. The main function isDate, with which you can go day, month and year. These are javascript functions, so it warns the corresponding message and returns false.

DaysInFebruary will calculate the number of days for feb over the past year.

DaysArray stores an array of the number of days for each month.

 var minYear=1900; var maxYear=2100; function daysInFebruary (year){ // February has 29 days in any year evenly divisible by four, // EXCEPT for centurial years which are not also divisible by 400. return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 ); } function DaysArray(n) { for (var i = 1; i <= n; i++) { this[i] = 31 if (i==4 || i==6 || i==9 || i==11) {this[i] = 30} if (i==2) {this[i] = 29} } return this } function isDate(strDay,strMonth,strYear ){ var daysInMonth = DaysArray(12) if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1) if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1) for (var i = 1; i <= 3; i++) { if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1) } month=parseInt(strMonth) day=parseInt(strDay) year=parseInt(strYr) if (strMonth.length<1 || month<1 || month>12){ alert("Please enter a valid month") return false } if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){ alert("Please enter a valid day") return false } if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){ alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear) return false } return true } 
0
source

You can use JavaScript to load hidden input with the value of the three drop-down menus of the change event, i.e.

 hidDate.value = ddlDay.value + "/" + ddlMonth.value + "/" ddlYear.value; 

Then use the comparison validation control with the dataType type set to DateTime, which checks for hidden input. You want to make sure that you drop out for values ​​and only concat / when necessary.

(Note: this is for concept only and will not be syntactically correct)

0
source
 // validate that the user made a selection other than default function isChosen(select) { if (select.selectedIndex == 0) { alert("Please make a choice from the list."); return false; } else { return true; } } function daysInFebruary (year){ // February has 29 days in any year evenly divisible by four, // EXCEPT for centurial years which are not also divisible by 400. return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 ); } function DaysArray(n) { for (var i = 1; i <= n; i++) { this[i] = 31 if (i==4 || i==6 || i==9 || i==11) {this[i] = 30} if (i==2) {this[i] = 29} } return this } function focusElement(formName, elemName) { var elem = document.forms[formName].elements[elemName]; elem.focus(); elem.select(); } function valid(dob1,dob2,dob3){ var daysInMonth = DaysArray(12) var date=dob1.value var month=dob2.value var year=dob3.value if((month==2 && date>daysInFebruary(year)) || date>daysInMonth[month]){ alert("Please enter a valid day") return false } return true } function validateForm(form) { if (isChosen(form.dob1)) { if (isChosen(form.dob2)) { if (isChosen(form.dob3)) { if(valid(form.dob1,form.dob2,form.dob3)){ document.frm.action="<%=contextPath%>/Conformation"; //"conformation" is for servelet mapping document.frm.submit(); } } } } return false; } </script> <script language="javascript"> function gotoAddResourceAction() { validateForm(document.frm) } </script> </head> <body> <form name="frm" method="post"> <table width="100%" id='table1' border="0" cellspacing="2" cellpadding="2"> <tr><td width="40%" class="txt-label"> <SPAN CLASS="txt-label">Date Of Birth (DOB)</SPAN><font color='red'> *</font>: </td> <td width="60%" class="txt-lable"> <Select name="dob1"><option value="" selected>Date</option> <option value="1" >1</option><option value="2" >2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select> <Select name="dob2"><option value="" selected>Month</option> <option value="1" >January</option><option value="2" >February</option><option value="3">March</option><option value="4">April</option><option value="5">May</option><option value="6">June</option><option value="7">July</option><option value="8">August</option><option value="9">September</option><option value="10">October</option><option value="11">November</option><option value="12">December</option></select> <Select name="dob3"><option value="" selected>Year</option> <option value="1950" >1950</option><option value="1951" >1951</option><option value="1952">1952</option><option value="1953">1953</option><option value="1954">1954</option><option value="1955">1955</option><option value="1956">1956</option><option value="1957">1957</option><option value="1958">1958</option><option value="1959">1959</option><option value="1960">1960</option><option value="1961">1961</option><option value="1962">1962</option><option value="1963">1963</option><option value="1964">1964</option><option value="1965">1965</option><option value="1966">1966</option><option value="1967">1967</option><option value="1968">1968</option><option value="1969">1969</option><option value="1970">1970</option><option value="1971">1971</option><option value="1972">1972</option><option value="1973">1973</option><option value="1974">1974</option><option value="1975">1975</option><option value="1976">1976</option><option value="1977">1977</option><option value="1978">1978</option><option value="1979">1979</option><option value="1980">1980</option><option value="1981">1981</option><option value="1982">1982</option><option value="1983">1983</option><option value="1984">1984</option><option value="1985">1985</option><option value="1986">1986</option> <option value="1987">1987</option><option value="1988">1988</option><option value="1989">1989</option><option value="1990">1990</option><option value="1991">1991</option><option value="1992">1992</option><option value="1993">1993</option><option value="1994">1994</option><option value="1995">1995</option><option value="1996">1996</option><option value="1997">1997</option><option value="1998">1998</option><option value="1999">1999</option><option value="2011">2011</option></select> </td></tr> <table width="100%" border="0" align="center"> <tr><td> <input type="button" name="SubmitForm" value="Submit" class="button" onMouseOver=(this.className='buttonover') onMouseOut=(this.className='button') onClick="gotoAddResourceAction()"> </td></tr> </table> 
0
source

All Articles