Hola, Paco
Tu función reescribe toda la caja de texto cada vez que pulsas una tecla, de ahí el caso.
¿No te valdría simplemente que se pase a mayúsculas una vez acabado?
Por otro lado, creo que toUpperCase funcionará sin necesidad de verificar los codigos para ver si es una letra.
En conclusión:
Código:
<html>
<head>
<script type="text/javascript" languaje="javascript">
function todoMay(caja) {
caja.value = caja.value.toUpperCase();
}
</script>
</head>
<body>
<form name="frm">
<input type="text" name="caja" onBlur="todoMay(this)">
</form>
</body>
</html>
o, más resumido:
Código:
<html>
<head>
</head>
<body>
<form name="frm">
<input type="text" name="caja" onBlur="this.value=this.value.toUpperCase">
</form>
</body>
</html>
(El "javascript" dentro del onClick, onBlur, onKeyUp etc. sobra, es implícito)