SitePoint Sponsor

User Tag List

Results 1 to 2 of 2

Thread: Date Validation

  1. #1
    SitePoint Member mr_ego's Avatar
    Join Date
    Mar 2004
    Location
    Brisbane
    Posts
    8
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Exclamation Date Validation

    I have three select boxes (day, month, year). I want to find out if the date entered is valid.

    Eg: an alert box comes up on form submission if 31/2/2004 is selected.

  2. #2
    SitePoint Wizard silver trophy
    Join Date
    May 2003
    Posts
    1,843
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Since you're already filtering the input by using drop-downs, why not just limit the possible entries to valid ones? Sidesteps the issue.
    Code:
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    <html> 
    <head> 
    <title>untitled</title> 
    <script type="text/javascript" language="javascript"> 
    
    var numDays = {
                    '1': 31, '2': 28, '3': 31, '4': 30, '5': 31, '6': 30, 
                    '7': 31, '8': 31, '9': 30, '10': 31, '11': 30, '12': 31
                  }; 
    
    function setDays(oMonthSel, oDaysSel, oYearSel) { 
         var nDays, oDaysSelLgth, opt, i = 1; 
         nDays = numDays[oMonthSel[oMonthSel.selectedIndex].value]; 
         if (nDays == 28 && oYearSel[oYearSel.selectedIndex].value % 4 == 0) 
             ++nDays; 
         oDaysSelLgth = oDaysSel.length; 
         if (nDays != oDaysSelLgth) { 
             if (nDays < oDaysSelLgth) 
                 oDaysSel.length = nDays; 
             else for (i; i < nDays - oDaysSelLgth + 1; i++) { 
                      opt = new Option(oDaysSelLgth + i, oDaysSelLgth + i); 
                      oDaysSel.options[oDaysSel.length] = opt;
          } 
       } 
    } 
    
    </script> 
    </head> 
    <body> 
    <form> 
    <select name="month" id="month" onchange="setDays(this,day,year)"> 
    <option value="1" selected="selected">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="day" id="day"> 
    <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="year" id="year" onchange="setDays(month,day,this)"> 
    <option value="2003">2003</option> 
    <option value="2004">2004</option> 
    <option value="2005">2005</option> 
    <option value="2006">2006</option> 
    <option value="2007">2007</option> 
    <option value="2008">2008</option> 
    <option value="2009">2009</option> 
    </select> 
    </form> 
    </body> 
    </html> 
    
    ::: certified wild guess :::


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •