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ú