W
WindAndWaves
Hi Gurus
The page below has a strange error. It seems to be working very well, just
when you enter 8 or 9 for day, month or year then you get an error. I
really have no idea where that is coming from. Can you help?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Online availability</TITLE>
<META NAME="keywords" CONTENT="Online availability" >
<META NAME="description" CONTENT="Online availability" >
<META NAME="Author" CONTENT="www.sunnysideup.co.nz" >
<SCRIPT TYPE="text/javascript">
<!--
function padLeft(str, pad, count) {
while(str.length<count)
str=pad+str;
return str;
}
function check(el, field) {
//controller
var result={error:""};
for(var ii=2; ii<arguments.length; ii++)
if((result=singleCheck(el, field, arguments[ii])).error)
break;
return result;
//single check
function singleCheck(el, field, type) {
var result={error:""};
switch(type) {
case "empty" :
if(/^\s*$/.test(el.value)) {
result.error="field "+field+" : should not be empty.";
}
break;
case "2num" :
if(!/^\d+$/.test(el.value)) {
result.error="field "+field+" : should contain only numbers.";
} else {
el.value=
padLeft(el.value.replace(/^\d+(\d\d)$/,"$1"), "0", 2);
}
break;
}
if(el.style)
el.style.color = result.error ? "#c00" : "";
return result;
}
}
function validate(form){
var a=[], msg=[], index=1;
// re-test the fields
a[a.length]=check(form.elements[0], "foo1", "empty", "2num");
a[a.length]=check(form.elements[1], "foo2", "empty", "2num");
a[a.length]=check(form.elements[2], "foo3", "empty", "2num");
//analyse the tests
for(var ii=0; ii<a.length; ii++)
if(a[ii].error)
msg[msg.length]=(index++)+" - "+a[ii].error;
//alert the message, if any
if(msg.length)
alert(msg.join("\n"));
//handle form's submission
return !msg.length;
}
function valid(form) {
var e = 0
var field = form.year;
var useryear = parseInt(field.value);
if (!useryear) {
alert("You must indicate a year (e.g. 04 or 05).");
field.focus();
field.select();
e = e + 1
} else if (useryear >= 4) {
} else {
alert("You should enter a year in the future, for example 05, you
entered " + useryear);
field.focus();
field.select();
e = e + 1
}
var field = form.month;
var usermonth = parseInt(field.value);
if (!usermonth) {
alert("You must indicate a month (e.g. 12 or 03).");
field.focus();
field.select();
e = e + 1
} else if (usermonth <= 12) {
} else {
alert("You should enter a month between 01 and 12, you entered " +
usermonth);
field.focus();
field.select();
e = e + 1
}
var field = form.day;
var userday = parseInt(field.value);
if (!userday) {
alert("You must indicate a day (e.g. 10 or 03).");
field.focus();
field.select();
e = e + 1
} else if (userday <= 31) {
} else {
alert("You should enter a day between 01 and 31, you entered " +
userday);
field.focus();
field.select();
e = e + 1
}
document.location.href='#' + form.day.value + form.month.value +
form.year.value;
}
-->
</SCRIPT>
<STYLE TYPE="text/css">
BODY, TABLE, TD, H1 {font-family: verdana, arial, helvetica, tahoma,
geneva;}
DIV.content { }
TABLE{border: 3px solid #CCCCCC; WIDTH: 406px; font-size: 10px;
margin-top: 100px; margin-bottom: 1200px;}
/*search table */
H1 {padding: 5px; text-align: center; background-color: #FFCF1B;
font-size: 12px; margin: 0px; color: white;}
TD.W400H20E8c {width: 400px; height: 20px; background-color: #E8E8E8;
text-align: center;}
TD.W50H40E8r {width: 50px; height: 40px; text-align:
right;background-color: #e8e8e8;}
TD.W400H40E8c {width: 400px; Height: 40px; background-color: #CCCCCC;
text-align: center;}
TD.W450H40E8 {width: 450px; height: 40px; background-color: #e8e8e8;}
input.date {width: 20px; height: 20px; border: 1px solid #FFCF1B;}
input.go {width: 400px; height: 20px; border: 1px solid #FFCF1B;}
/*data table */
TD.f {Height: 20px; background-color: #E8E8E8;}
TD.c {Height: 20px; background-color: #E8E8E8; text-align: center;}
TD.h {Height: 20px; background-color: #FFCF1B; text-align: center;}
</STYLE>
</HEAD>
<BODY STYLE="background-color: #FFFFFF"><DIV ALIGN=CENTER CLASs=content>
<FORM>
<TABLE CELLSPACING=0 CELLPADDING=0 CLASS=s>
<TR><Td COLSPAN=2 class=W400H20E8c><H1>SEARCH FOR AVAILABILITY - ENTER
DATE</H1></TD></TR>
<TR><TD CLASS=W50H40E8r><Input value=00 type=text name="day" SIZE=1
onblur="check(this, 'foo1', 'empty', '2num')" CLASS=date></TD><TD
CLASS=W450H40E8> day (e.g. 02 or 23)</TD></TR>
<TR><TD CLASS=W50H40E8r><Input value=00 type=text name="month" SIZE=1
onblur="check(this, 'foo1', 'empty', '2num')" CLASS=date></TD><TD
CLASS=W450H40E8> month (e.g. 03 or 12)</TD></TR>
<TR><TD CLASS=W50H40E8r><Input value=00 type=text name="year" SIZE=1
onblur="check(this, 'foo1', 'empty', '2num')" CLASS=date></TD><TD
CLASS=W450H40E8> year (e.g. 04 or 05)</TD></TR>
<TR><TD COLSPAN=2 class=W400H20E8c><INPUT TYPE="button" VALUE="SEARCH"
onClick="return valid(form)" CLASS=go></TD></TR>
</TABLE>
</FORM>
<TABLE CELLSPACING=0 CELLPADDING=5 CLASS=d BORDER=1>
<TR><TD class=h>Day</TD><TD class=h>Room 1</TD><TD class=h>Room
2</TD></TR>
<TR><TD class=f><A NAME=110305></A>11 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
<TR><TD class=f><A NAME=120305></A>12 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
<TR><TD class=f><A NAME=130305></A>13 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
<TR><TD class=f><A NAME=140305></A>14 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
<TR><TD class=f><A NAME=150305></A>15 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
<TR><TD class=f><A NAME=160305></A>16 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
<TR><TD class=f><A NAME=170305></A>17 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
</TABLE>
<BR>last updated: 11 November 2004, 13:50
</BODY>
</HTML>
The page below has a strange error. It seems to be working very well, just
when you enter 8 or 9 for day, month or year then you get an error. I
really have no idea where that is coming from. Can you help?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Online availability</TITLE>
<META NAME="keywords" CONTENT="Online availability" >
<META NAME="description" CONTENT="Online availability" >
<META NAME="Author" CONTENT="www.sunnysideup.co.nz" >
<SCRIPT TYPE="text/javascript">
<!--
function padLeft(str, pad, count) {
while(str.length<count)
str=pad+str;
return str;
}
function check(el, field) {
//controller
var result={error:""};
for(var ii=2; ii<arguments.length; ii++)
if((result=singleCheck(el, field, arguments[ii])).error)
break;
return result;
//single check
function singleCheck(el, field, type) {
var result={error:""};
switch(type) {
case "empty" :
if(/^\s*$/.test(el.value)) {
result.error="field "+field+" : should not be empty.";
}
break;
case "2num" :
if(!/^\d+$/.test(el.value)) {
result.error="field "+field+" : should contain only numbers.";
} else {
el.value=
padLeft(el.value.replace(/^\d+(\d\d)$/,"$1"), "0", 2);
}
break;
}
if(el.style)
el.style.color = result.error ? "#c00" : "";
return result;
}
}
function validate(form){
var a=[], msg=[], index=1;
// re-test the fields
a[a.length]=check(form.elements[0], "foo1", "empty", "2num");
a[a.length]=check(form.elements[1], "foo2", "empty", "2num");
a[a.length]=check(form.elements[2], "foo3", "empty", "2num");
//analyse the tests
for(var ii=0; ii<a.length; ii++)
if(a[ii].error)
msg[msg.length]=(index++)+" - "+a[ii].error;
//alert the message, if any
if(msg.length)
alert(msg.join("\n"));
//handle form's submission
return !msg.length;
}
function valid(form) {
var e = 0
var field = form.year;
var useryear = parseInt(field.value);
if (!useryear) {
alert("You must indicate a year (e.g. 04 or 05).");
field.focus();
field.select();
e = e + 1
} else if (useryear >= 4) {
} else {
alert("You should enter a year in the future, for example 05, you
entered " + useryear);
field.focus();
field.select();
e = e + 1
}
var field = form.month;
var usermonth = parseInt(field.value);
if (!usermonth) {
alert("You must indicate a month (e.g. 12 or 03).");
field.focus();
field.select();
e = e + 1
} else if (usermonth <= 12) {
} else {
alert("You should enter a month between 01 and 12, you entered " +
usermonth);
field.focus();
field.select();
e = e + 1
}
var field = form.day;
var userday = parseInt(field.value);
if (!userday) {
alert("You must indicate a day (e.g. 10 or 03).");
field.focus();
field.select();
e = e + 1
} else if (userday <= 31) {
} else {
alert("You should enter a day between 01 and 31, you entered " +
userday);
field.focus();
field.select();
e = e + 1
}
document.location.href='#' + form.day.value + form.month.value +
form.year.value;
}
-->
</SCRIPT>
<STYLE TYPE="text/css">
BODY, TABLE, TD, H1 {font-family: verdana, arial, helvetica, tahoma,
geneva;}
DIV.content { }
TABLE{border: 3px solid #CCCCCC; WIDTH: 406px; font-size: 10px;
margin-top: 100px; margin-bottom: 1200px;}
/*search table */
H1 {padding: 5px; text-align: center; background-color: #FFCF1B;
font-size: 12px; margin: 0px; color: white;}
TD.W400H20E8c {width: 400px; height: 20px; background-color: #E8E8E8;
text-align: center;}
TD.W50H40E8r {width: 50px; height: 40px; text-align:
right;background-color: #e8e8e8;}
TD.W400H40E8c {width: 400px; Height: 40px; background-color: #CCCCCC;
text-align: center;}
TD.W450H40E8 {width: 450px; height: 40px; background-color: #e8e8e8;}
input.date {width: 20px; height: 20px; border: 1px solid #FFCF1B;}
input.go {width: 400px; height: 20px; border: 1px solid #FFCF1B;}
/*data table */
TD.f {Height: 20px; background-color: #E8E8E8;}
TD.c {Height: 20px; background-color: #E8E8E8; text-align: center;}
TD.h {Height: 20px; background-color: #FFCF1B; text-align: center;}
</STYLE>
</HEAD>
<BODY STYLE="background-color: #FFFFFF"><DIV ALIGN=CENTER CLASs=content>
<FORM>
<TABLE CELLSPACING=0 CELLPADDING=0 CLASS=s>
<TR><Td COLSPAN=2 class=W400H20E8c><H1>SEARCH FOR AVAILABILITY - ENTER
DATE</H1></TD></TR>
<TR><TD CLASS=W50H40E8r><Input value=00 type=text name="day" SIZE=1
onblur="check(this, 'foo1', 'empty', '2num')" CLASS=date></TD><TD
CLASS=W450H40E8> day (e.g. 02 or 23)</TD></TR>
<TR><TD CLASS=W50H40E8r><Input value=00 type=text name="month" SIZE=1
onblur="check(this, 'foo1', 'empty', '2num')" CLASS=date></TD><TD
CLASS=W450H40E8> month (e.g. 03 or 12)</TD></TR>
<TR><TD CLASS=W50H40E8r><Input value=00 type=text name="year" SIZE=1
onblur="check(this, 'foo1', 'empty', '2num')" CLASS=date></TD><TD
CLASS=W450H40E8> year (e.g. 04 or 05)</TD></TR>
<TR><TD COLSPAN=2 class=W400H20E8c><INPUT TYPE="button" VALUE="SEARCH"
onClick="return valid(form)" CLASS=go></TD></TR>
</TABLE>
</FORM>
<TABLE CELLSPACING=0 CELLPADDING=5 CLASS=d BORDER=1>
<TR><TD class=h>Day</TD><TD class=h>Room 1</TD><TD class=h>Room
2</TD></TR>
<TR><TD class=f><A NAME=110305></A>11 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
<TR><TD class=f><A NAME=120305></A>12 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
<TR><TD class=f><A NAME=130305></A>13 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
<TR><TD class=f><A NAME=140305></A>14 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
<TR><TD class=f><A NAME=150305></A>15 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
<TR><TD class=f><A NAME=160305></A>16 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
<TR><TD class=f><A NAME=170305></A>17 March 2005</TD><TD
class=c>3</TD><TD class=c>3</TD></TR>
</TABLE>
<BR>last updated: 11 November 2004, 13:50
</BODY>
</HTML>