View Single Post
  #1 (permalink)  
Old July 1st, 2005, 05:30 AM
crmpicco crmpicco is offline
Friend of Wrox
Points: 8,019, Level: 38
Points: 8,019, Level: 38 Points: 8,019, Level: 38 Points: 8,019, Level: 38
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jan 2005
Location: Mauchline, East Ayrshire, Scotland
Posts: 1,525
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to crmpicco Send a message via AIM to crmpicco Send a message via MSN to crmpicco Send a message via Yahoo to crmpicco
Default JS validation on the drop-down menus

Code:
                                              
<script language="javascript">
///////////////////////////////////////
// Date of Birth Validation             //
// Check if Infant < 2 Jahre Alt     //
// Check if Child < 12 Jahre Alt     //
///////////////////////////////////////
Date.prototype.getDiff = function(date, interval){
  if (typeof date == "string"){
     date = new Date(date);
  }
  if (isNaN(date) || !(date instanceof Date)){
     return NaN; 
  }
  if (typeof interval == "undefined") interval = "ms"; 
  var diff = this - date; 
  switch(interval.toLowerCase()){
    case "s": 
        diff = diff/1000; break;
    case "n": 
        diff = diff/(1000*60); break;
       case "h": 
        diff = diff/(1000*60*60); break;
       case "d": 
        diff = diff/(1000*60*60*24); break;
    case "m": 
        diff = diff/(1000*60*60*24*30); break;
    case "y": 
        diff = diff/(1000*60*60*24*365); break;
    default:
      ; 
  }
  return Math.floor(diff);
}

function checkBirthday(obj) {
    if( !/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/.test(obj.value) ) {
        alert( "Invalid date supplied - must be format DD/MM/YYYY" );
        obj.focus();
        return;
    }

    var d = new Date();
    var d2 = new Date(RegExp.$3, RegExp.$2, RegExp.$1);

    var diff = d.getDiff(d2, "y")
    if( isNaN(diff) ) {
        alert( "Invalid date supplied" );
    }
    else if( diff < 2 ) {
        alert( "This IS an INFANT \n they are younger that 2" );
        infant = true;
    }
    else if( diff > 2 ) {
        alert( "This is NOT an INFANT \n they are older that 2" );
        infant = false;
        document.form.birthday.value = "";
        document.form.birthday.focus();

    }

}

</script>
Code:
<select name="date<%=k%>"
onChange="document.form.birthday.value=document.form.birthday.value+document.form.date<%=k%>.options[document.form.date<%=k%>.selectedIndex].value;"
style="color: black; font: 7pt Verdana, Arial, Helvetica, sans-serif;">
<%
For d = 1 to 31
    Response.write "<option value=" & d & ">" & d & "</option>"
Next
%>
</select>
<select name="month<%=k%>"
onChange="document.form.birthday.value=document.form.birthday.value+document.form.month<%=k%>.options[document.form.month<%=k%>.selectedIndex].value;"
style="color: black; font: 7pt Verdana, Arial, Helvetica, sans-serif;">
<%
For m = 1 to 12
    response.Write "<option value=" & m & ">" & MMtoMMM(m) & "</option>"
Next
%>        
</select>
<% 
Dim three_years_ago
three_years_ago = year(date) - 3
%>
<select name="year<%=k%>"
onChange="document.form.birthday.value=document.form.birthday.value+document.form.year<%=k%>.options[document.form.year<%=k%>.selectedIndex].value;"
style="color: black; font: 7pt Verdana, Arial, Helvetica, sans-serif;">
<%
For y = three_years_ago to year(date)
    Response.Write "<option value=" & y & ">" & y & "</option>"
Next
%>
</select>

<input type="text" name="birthday" size="5" style="font:7pt;" value="" maxLength="10"> 

<img src="images/confirm.gif" alt="Confirm" name="HoldFlights" width="80" height="15" border=0  id=submit1 title="The reservations will be confirmed now" onclick="javascript: checkBirthday(document.form.birthday);return confirmedok();document.body.style.cursor = 'wait';" onMouseOver='style.cursor="hand"'  value="Confirm">
I am having a problem with this code. I am looking to have JS validation on the drop-down menus like I said before.
I am trying to put the values of the drop-down menus into a textbox then validate it.
Although, i am experiancing problems. How can i do this? I am trying to check if the date of birth is MORE than two years ago
(i.e. if the infant is older than 2years old). If they are then dont submit the form and show pop-up (ALERT). Else, submit form to next page.

www.crmpicco.co.uk
www.crmpicco.co.uk.tt
www.milklemonadechocolate.uk.tt
www.griswolds.uk.tt
www.piccosmini.co.uk.tt
www.morton.uk.tt
__________________
_______________________
Ayrshire Minis - a Mini E-Community
http://www.ayrshireminis.com
http://www.crmpicco.co.uk
Reply With Quote