title: javascript date validation and if in past alert
body: <p>Hi all I am new to javascript &amp; I have written up a script to validate a form. I have a few problems that i am stuck with 1. I am unsure how to validate my date also testing for leap years and months with 31 days . 2. once that date is entered making sure that the date is not in the past if it is to alert that the date is incorrect. 3. how to combine all alerts in the same alert box . Like I said I am new to javascript so a simple as possible explanation would be very much appreciated. Thank you in advance for your time :).  below is  my script.</p>
  
  <p>( javascript to go with this form )</p>
  
  <pre><code>function validateForm() {
      // this part of the script will collate all errors into one should the user leave an input blank
      var Fname=document.forms["myForm"]["fname"].value;
      var Lname=document.forms["myForm"]["lname"].value;
      var address=document.forms["myForm"]["addr1"].value;
      var postcode=document.forms["myForm"]["pcode"].value;
      var email=document.forms["myForm"]["email"].value;
      var number=document.forms["myForm"]["tel"].value;
      var date=document.forms["myForm"]["mydate"].value;
  
      if (Fname == null || Fname == "" || Lname == null || Lname == ""
              || address == null || address == "" || !postcode || !email
              || !number || (myForm.sex[0].checked == false)
              &amp;&amp; (myForm.sex[1].checked == false)
              || (myForm.age[0].checked == false)
              &amp;&amp; (myForm.age[1].checked == false)
              &amp;&amp; (myForm.age[2].checked == false)
              &amp;&amp; (myForm.age[3].checked == false)
              &amp;&amp; (myForm.age[4].checked == false)
              || !date) {
          alert("Please make sure all fields are filled or checked correctly out ");
  
          return false;
      }
  
      // end of collating script
      // start of postcode script
      var regPostcode = /^[a-zA-Z]{1,2}\d[\dA-Za-z]? \d[a-zA-Z]{2}$/;
      if (!postcode.match(regPostcode))
      {
          alert("That Post Code is incorrect, correct way mk4 4tr");
  
          return false;
      }
  
      // end of postcode script
      // start of email script
      var regEmail = /^\S+@\S+\.\S+$/;
  
      if (!email.match(regEmail))
      {
          alert("That email is incorrect");
  
          return false;
      }
  
      // end of email script
      // start of phone number script
      var phonestring = /^(?:0|\+44)[12378]\d{8,9}$/;
      if (!number.match(phonestring)) {
          alert(" correct format 01908234837");
  
          return false;
      }
      // end of phone script
      // start of gender script
  
      if ((myForm.sex[0].checked == false) &amp;&amp; (myForm.sex[1].checked == false)) {
          alert("Please choose your Gender: Male or Female");
  
          return false;
      }
  
      // end of gender script
      // start of age group script
      if ((myForm.age[0].checked == false)
              &amp;&amp; (myForm.age[1].checked == false)
              &amp;&amp; (myForm.age[2].checked == false)
              &amp;&amp; (myForm.age[3].checked == false)
              &amp;&amp; (myForm.age[4].checked == false)) {
          alert("please select an age group");
  
          return false;
      }
  
      // end of age script
      // start of datefield
      var dateformat = /^(?:(?:31\/(?:0[13578]|1[02])|(?:29|30)\/(?:0[13-9]|1[012])|(?:0[1-9]|1\d|2[0-8])\/(?:0[1-9]|1[0-2]))\/[2-9]\d{3}|29\/02\/(?:[2-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[3579][26])00))$/;
  
      if (!date.match(dateformat)) {
          alert("format incorrect use dd/mm/yyyy make sure you are entering correct days to the month remember 30 days have september, april, june &amp; november, only 28 days in february unless leap year next is 2016");
  
          return false;
      }
  
      // end of date field
      // start of terms and condition script
      if (myForm.tandc.checked == false) {
          alert("Please accept the terms and conditions");
  
          return false;
      } else {
          alert(" Thank you a member of our team will get back to you shortly");
  
          return true;
      }
  }
  </code></pre>