Validering af tidspunkt
Jeg skal have valideret et inputfelt til et klokkeslet.00.00
Det skal fungere således, at man skal kunne nøjes med at indtaste timerne (uden nul foran) - og den selv sætter et nul foran timerne, hvis det er under kl.10
Jeg har denne kode, men den fungerer kun hvis man indtaster timerne MED nul foran:
<html>
<head>
<script language="JavaScript">
function timeValidator(timeStr) {
var formattedTime = new String();
var timeSep = timeStr;
//Erstat alle punktummer med kolon.
timeSep = timeSep.replace(/\./g, ':');
//Split timer og minutter fra hinanden
timeSep = timeSep.split(':', 2);
var hour = timeSep[0];
var minute = timeSep[1];
var isValid = true;
//Hvis ikke der er angivet minutter, så går vi ud fra det skal være 00.
if(minute == null || minute == '')
minute = '00';
//isNaN = is Not a Number. Funktionen returnerer altså true hvis det ikke er et tal
//(og det er jo det eneste vi vil arbejde med her, så hvis der bliver returneret true,
//sættes isValid til false.)
if(isNaN(hour) || isNaN(minute))
isValid = false;
//Vi tjekker om tallene stemmer overens med et tidsformat vi kender.
if(hour > 23 || hour == null || hour < 0)
isValid = false;
if(minute > 59 || minute == null || minute < 0)
isValid = false;
if(!isValid) {
alert('Tiden er ikke angivet korrekt');
} else {
//Hvis der er angivet et tal under 10 sikrer vi os, at der kommer et nul foran
if(hour < 10 && hour.length == 1)
formattedTime = '0';
formattedTime += hour + ':';
if(minute < 10 && minute.length == 1)
formattedTime += '0';
formattedTime += minute;
document.timeform.time.value = formattedTime;
}
}
</script>
</head>
<body>
<center>
<form name=timeform>
<input type=text name=time onBlur="timeValidator(document.timeform.time.value);"><br>
</form>
</center>
Kan nogen få øje på fejlen?
