concatinating values in textbox

I have a problem with this code.

I am trying to perform validation on the three drop down menus which give the DATE, MONTH and the YEAR.

I am putting the values of each into a hidden text box then
performing validation on the text box.

However, i need to allow the user to change the drop down value (by pulling it down and
selecting a value) and change the textbox automatically.

It works if i select 1 date, 1 month then 1 year. But, if i change the year, month or date again it just adds
to the textbox.

for example,

works: 6/6/2005

then if i change the year again (without a refresh of the page) the box reads:

6/6/20052004

How can i stop this?

Help appreciated.

[code]
// Check the INFANT Birthday
// 2 Year Old Check

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;
            document.form.submit();
            
      }
      else if( diff > 2 ) {
            alert( "This is NOT an INFANT \n they are older that 2" );
            infant = false;
            document.form.birthday.value = "";
            document.form.date.focus();
      }
      
}


<form name="form" action="abc.htm">
INF:<select name="date"
onChange="document.form.birthday.value=document.form.birthday.value+document.form.date.options[document.form.date.selectedIndex].value;"
style="color: black; font: 7pt Verdana, Arial, Helvetica, sans-serif;">
<%
      Response.write "<option> --- </option>"
For d = 01 to 31
      Response.write "<option value=" & d & "/>" & d & "</option>"
Next
%>
</select>
<select name="month"
onChange="document.form.birthday.value=document.form.birthday.value+document.form.month.options[document.form.month.selectedIndex].value;"
style="color: black; font: 7pt Verdana, Arial, Helvetica, sans-serif;">
<%
      Response.write "<option> --- </option>"
For m = 01 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"
onChange="document.form.birthday.value=document.form.birthday.value+document.form.year.options[document.form.year.selectedIndex].value;"
style="color: black; font: 7pt Verdana, Arial, Helvetica, sans-serif;">
<%
      Response.write "<option> --- </option>"
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/required.gif"  onclick="javascript: checkBirthday(document.form.birthday);" value="Confirm">
</form>
[/code]
crmpiccoAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

siteationsCommented:
Change your onChange from:

document.form.birthday.value=document.form.birthday.value+document.form.date.options[document.form.date.selectedIndex].value;

to:

document.form.birthday.value=document.form.date.options[document.form.date.selectedIndex].value+document.form.month.options[document.form.month.selectedIndex].value+document.form.year.options[document.form.year.selectedIndex].value;

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
siteationsCommented:
Be sure to change all three (date, month, and year).
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
JavaScript

From novice to tech pro — start learning today.