Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2012, 23:46
Avatar de freesoftwarrior
freesoftwarrior
 
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Quitar foco luego de pulsar una tecla

Buenas noches:
Tengo este problema. Este código lo uso para que en un campo se pueda ingresa únicamente números del 1 al 6, pero cuando se ingrese uno entre el 2 y 6 deberá de mostrar un mensaje. Funciona bien, sin embargo al ingresar un número me sigue manteniendo el foco y aunque el input esta configurado para que acepte sólo 1 carácter, si pulso otro número, entre el 2 y el 6 por ejemplo, salta el mensaje aún cuando en el campo se mantiene el valor de 1.

Cita:
<input type="text" name="descarte" id="descarte" size="2" maxlength="1" onKeyPress="return rango(event);">

..........

var nav4 = window.Event ? true : false; //Sólo números
function rango(evt)
{
// Backspace = 8, Enter = 13, '1' = 49, '6' = 54
var key = nav4 ? evt.which : evt.keyCode;
//return (key <= 13 || (key >= 48 && key <= 54));

if(key > 49 && key <=54)
{alert("hay que ingresar una observación");}

return (key <= 13 || (key >= 49 && key <= 54) || key == 40);
document.getElementById("descarte").blur();
}
El blur() no me funciona como deseo. Claro que si pongo esa línea antes del return funciona, pero no me permite ingresar ningún dato.

Lo que necesito es que una vez pulsada una de las teclas permitidas automáticamente se pierda el foco.

¿Que me sugieren?

Muchas gracias desde ya.
Un saludo desde Lima, Perú