Problem med dato
Jeg skal lave en formular til at oprette skoleskemaer i - og i denne vil jeg gerne have indbygget noget datocheck. Selve datokontrollen fungerer faktisk fint.... men datoen fra datofelt1 hopper med over til datofelt2, når dotofelt2 får fokus... hvad er der galt??--- kode der laver skemaet ---
<table>
<tr>
<td>Lektion</td><td>Mandag</td><td>Tirsdag</td><td>Onsdag</td><td>Torsdag</td><td>Fredag</td>
</tr>
<tr bgcolor="#CCCCCC">
<td>Dato</td>
<td><input name="dato_1" type="text" tabindex="1" onKeyPress="return inputDate(event,this);" onKeyDown="if(getCharCode(event)==8)repeatRemove++;" onKeyUp="restoreVal(getCharCode(event),this);this.focus();" size="8"></td>
<td><input name="dato_2" type="text" tabindex="6" onKeyPress="return inputDate(event,dato_2);" onKeyDown="if(getCharCode(event)==8)repeatRemove++;" onKeyUp="restoreVal(getCharCode(event),dato_2);this.focus();" size="8"></td>
<td><input name="dato_3" type="text" tabindex="11" onKeyPress="return inputDate(event,this);" onKeyDown="if(getCharCode(event)==8)repeatRemove++;" onKeyUp="restoreVal(getCharCode(event),this);this.focus();" size="8"></td>
<td><input name="dato_4" type="text" tabindex="16" onKeyPress="return inputDate(event,this);" onKeyDown="if(getCharCode(event)==8)repeatRemove++;" onKeyUp="restoreVal(getCharCode(event),this);this.focus();" size="8"></td>
<td><input name="dato_5" type="text" tabindex="21" onKeyPress="return inputDate(event,this);" onKeyDown="if(getCharCode(event)==8)repeatRemove++;" onKeyUp="restoreVal(getCharCode(event),this);this.focus();" size="8"></td>
</tr>
<%
tabstart = 1
while row < 4
response.write "<tr>"
response.write "<td>" & skema(row,0) & "</td>"
tabindex = tabstart
col = 1
while col < 6
var = row & "_" & col
response.write "<td><input name=lek" & var & " type=text size=8 tabindex=" & tabindex & "></td>" & vbcrlf
tabindex = tabindex + 5
col = col + 1
wend
tabstart = tabstart + 1
row = row + 1
response.write "</tr>"
wend
%>
</table>
---- koden der checker datoerne ---
<script language="JavaScript">
var newVal="";
var newTime="";
var dd=0;
var mm=0;
var time=0;
var minut=0;
var repeatRemove=0;
function getCharCode(e){
return (e.which)?e.which:e.keyCode;1
}
function restoreVal(eC,fld){
if (eC==8||repeatRemove>0){
if (newVal.length>repeatRemove){
newVal=newVal.substring(0,newVal.length-repeatRemove)
}else{
newVal="";
}
}
repeatRemove=0;
fld.value=newVal;
}
function inputDate(e,fld){
removeChar=false;
newVal=fld.value;
charCode = getCharCode(e);
if ((fld.value.length==2 || fld.value.length==5) && charCode==45){newVal+="-";return true;}
if (fld.value.length==10 || charCode>57 || charCode<48){
return false;
}
newVal=fld.value+String.fromCharCode(charCode)
switch (fld.value.length){
case 0:
if (+newVal>3){repeatRemove++;return false;}
break;
case 1:
if (+newVal>31){repeatRemove++;return false;}
dd = +newVal;
newVal+="-";
break;
case 2:
newVal=fld.value+"-"+String.fromCharCode(charCode)
if (charCode>49){repeatRemove++;return false;}
break;
case 3:
if (charCode>49){repeatRemove++;return false;}
break;
case 4:
var mm = parseInt(newVal.substring(3),10);
if (mm==2 && dd>29 || mm>12){repeatRemove++;return false;}
if (dd==31 && (mm==4 || mm==6 || mm==9 || mm==11)){repeatRemove++;return false;}
newVal+="-";
break;
case 5:
newVal=fld.value+"-"+String.fromCharCode(charCode)
break;
}
newVAl ="";
return true;
}
// ****************************************************************************************************
function restoreValTime(eC,fld){
if (eC==4||repeatRemove>0){
if (newTime.length>repeatRemove){
newTime=newTime.substring(0,newTime.length-repeatRemove)
}else{
newTime="";
}
}
repeatRemove=0;
fld.value=newTime;
}
function inputTime(e,fld){
removeChar=false;
newTime=fld.value;
charCode = getCharCode(e);
//if ((fld.value.length==2 || fld.value.length==5) && charCode==45){newVal+="-";return true;}
if (fld.value.length==5 || charCode>57 || charCode<48){
return false;
}
newTime=fld.value+String.fromCharCode(charCode)
switch (fld.value.length){
case 0:
if (+newTime>2){repeatRemove++;return false;}
break;
case 1:
if (+newTime>23){repeatRemove++;return false;}
newTime+=":";
break;
case 2:
newTime=fld.value+":"+String.fromCharCode(charCode)
if (charCode>53){repeatRemove++;return false;}
break;
case 3:
if (charCode>53){repeatRemove++;return false;}
break;
case 4:
var minut = parseInt(newTime.substring(3),10);
if (minut>59){repeatRemove++;return false;}
break;
}
return true;
}
</script>
