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:
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. <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();
}
..........
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();
}
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ú