Hola rol2007, tu código es algo antiguo (de la era de IE4 y Netscape 4, 1998-2000!!), en la actualidad podemos simplificarlo de la siguiente manera:
Código javascript
:
Ver originalfunction isDecimalKey(evt, txt){
var key = evt.which || evt.keyCode;
// Capturar el codigo de la tecla presionada.
// Si no es evt.which, usar evt.keyCode (para IE)
if ((key == 13 || key == 46 || key == 8) || (key >= 48 && key <=57)){
// Si la tecla es backspace, enter, punto o digito
if (key == 46 && txt.indexOf('.')!=-1){
// Si es el caracter "." comprobar que sea el unico
return false;
}
return true;
}
return false;
}
Ah y no olvides poner en tus inputs lo siguiente:
Código html:
Ver original<input type="text" name="monto" onkeypress="return isDecimalKey(event, this.value)">
Básicamente la función
isDecimalKey retornara true si la tecla presionada es un dígito, o si es el primer punto ingresado, de lo contrario retornará false, impidiendo que se pueda ingresar cualquier texto que no cumpla con lo anterior.
Puedes probar el código anterior acá: jsbin.com/itute
(Lo siento, no puedo incluir enlaces externos debido a que no tengo mas de 30 mensajes!)
Saludos,
-- CMS