Si entendí bien, lo que quieres es esto:
Código HTML :
<!doctype html>
<html>
<head>
<script type="text/javascript">
function GetKey(e) {
var keynum;
if(window.event) { keynum = e.keyCode; }
else if(e.which) { keynum = e.which; }
return keynum;
}
function GetChar(ev) {
var ev = ev || window.event;
var chr = ev.charCode || ev.keyCode;
return String.fromCharCode(chr);
}
function ValidarTecla(ev) {
var key = GetKey(ev);
if (key > 63) {
var chr = GetChar(ev);
if (/[\d|\.|,]/.test(chr)) {
return true;
} else {
return false;
}
} else {
return true;
}
}
function ValidarTexto(ele) {
var valor = ele.value;
if (/^\d[,|\.]\d*/.test(valor) == false) {
alert("El valor no es válido.");
} else {
if ((parseFloat(valor) < 0) || (parseFloat(valor) > 5)) {
alert("Debe estar entre cero y cinco.");
}
}
}
</script>
</head>
<body>
<input type="text" name="sometext" id="sometext" onKeypress="return ValidarTecla(event);" onBlur="ValidarTexto(this);" />
<input type="button" value="Vamos" />
</body>
</html>
Lo escribí lo más explícitamente posible para que se entienda el ejemplo (reciclando código de mi biblioteca personal...).
No permite que se tecleen otra cosa que no sean números, el punto o la coma o las teclas tab y enter. Luego, al perder el foco la caja de texto, valida lo que se ha ingresado.