crmpicco
07-01-2005, 12:51 PM
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.
// 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>
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.
// 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>