lo más práctico sería con una expresión regular
Código HTML:
Ver original<!DOCTYPE html>
<script type="text/javascript"> //<![CDATA[
function verifica(){
var valor= document.getElementById('numero');
var expresion=/^\d+,?\d{0,3}$/;
var resultado=expresion.test(valor.value);
if(resultado == true){
document.getElementById('mensaje').innerHTML = "ok";
}else{
document.getElementById('mensaje').innerHTML = "error";
}
}
//]]>
<input type="text" value="" name="numero" id="numero" onkeyup="verifica();" /> <div id="mensaje" style="height: 20px;"></div> <input type="button" value="verificar" onclick="verifica();" />
Pero usar onkeyup podría tener sus contras si te pegan un texto en lugar de ingresar con el teclado. Además, no me que da claro si podría haber números sin decimales. Ni que decir, que una vez recibido el numero, si vas a hecr operaciones con decimales deberías reemplazar esa coma y cambiarla por un punto
Saludos