Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/08/2011, 22:02
Avatar de freesoftwarrior
freesoftwarrior
 
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Habilitar y deshabilitar la tecla Backspace

Buenas noches:
Este es mi dilema. Estoy desarrollando una aplicación y necesito deshabilitar la tecla backspace para evitar que el usuario, accidental o voluntariamente, regrese en el historial del browser. Para ello utilizo el siguiente código:

Cita:
document.onkeydown = function()
{
e=window.event;
if(!window.event)return false;
if(e.keyCode == 37 && e.altKey==true )
{return false;}
if((e.keyCode == 116 || e.keyCode == 82) && e.ctrlKey==true)
{return false;}

if(window.event && window.event.keyCode == 116) //F5
{window.event.keyCode = 505;}
if(window.event && window.event.keyCode == 08) //BACKSPACE
{window.event.keyCode = 505;}
if(window.event && window.event.keyCode == 505)
{return false;}
}
Este es un código que además me permite deshabilitar la tecla F5.
Hasta aquí no hay ningún problema. Sin embargo encontré una "falla" en el concepto y es que, obviamente, el usuario no podrá ya usar la tecla backspace para corregir algo que haya escrito.

Y es ahí donde tengo el dilema. He estado tratando de ver la posibilidad de hacer algo como esto (figurativamente por cierto)


Cita:
<input type="text" name="datos" size="20" class="botonInput" onKeyPress="habilitarBackspace();" onBlur="deshabilitarBackspace();">
En resumen mi problema es el siguiente:
1. Necesito evitar que el usuario pueda regresar en el historial de navegación haciendo uso de la tecla backspace (el botón de retroceso del browser parece que no se puede deshabilitar)
2. Necesito habilitar, temporalmente y sólo en ciertos campos (input y text) la tecla backspace PERO SÓLO para la edición de datos más no para el retroceso en el historial (de ahí la idea de volver a habilitarla con el evento onBlur )

Si alguien tiene alguna idea o sugerencia, les voy a quedar muy agradecido.

Un saludo desde Lima, Perú