roenving hjalp mig en del med et længere script
(se her:
http://www.eksperten.dk/spm/363938 )
og i denne forbindelse gav han mig denne fidus med inputmaske til dato-felt:
<html><head>
<TITLE>Validering dd-mm-yyyy</TITLE>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<!-- Virker i IE6, men ikke i Stone's interne -->
<script LANGUAGE="javascript" TYPE="text/javascript">
//Script til inputmaske for datofeltet. START
var newVal="";
var dd=0;
var mm=0;
var repeatRemove=0;
function getCharCode(e){
return (e.which)?e.which:e.keyCode;
}
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;}
if (+newVal==00){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 || mm==00){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;
case 6:
if (charCode<49 || charCode>50){repeatRemove++;return false;} //Tillader 1 og 2
som første tal i årstal
break;
case 7:
var yy = parseInt(newVal.substring(6));
if (yy<19 || yy>20){repeatRemove++;return false;} //Tillader 19 og 20 som første
to tal i årstal
break;
case 8:
var yyy = parseInt(newVal.substring(6));
if (yyy>200){repeatRemove++;return false;} //Tillader kun 0 som trejde tal, hvis
første to er 2 og 0.
break;
case 9:
var yyyy = parseInt(newVal.substring(6));
var thisYear = new Date().getFullYear();
if (yyyy>thisYear){repeatRemove++;return false;} //Tillader højst i år som årstal.
break;
}
return true;
}
//Script til inputmaske for datofelt. SLUT
</SCRIPT>
</HEAD>
<BODY>
<form>
<INPUT type="text" name="date" value="" onkeydown="if(getCharCode(event)==8)repeatRemove++;"
onkeypress="return inputDate(event,this);"
onkeyup="restoreVal(getCharCode(event),this);this.focus();">
</FORM>
</body>
</HTML>
Det virker fortrinligt.