Foros del Web » Programando para Internet » Javascript »

Grabar antes de salir de la página

Estas en el tema de Grabar antes de salir de la página en el foro de Javascript en Foros del Web. Buenas noches: He creado rutinas para grabar y validar que funcionan bien. La última que he creado hace que cada vez que un campo (el ...
  #1 (permalink)  
Antiguo 24/06/2008, 17:46
 
Fecha de Ingreso: marzo-2008
Mensajes: 82
Antigüedad: 16 años, 1 mes
Puntos: 0
Grabar antes de salir de la página

Buenas noches:
He creado rutinas para grabar y validar que funcionan bien.
La última que he creado hace que cada vez que un campo (el que sea) se modifique su contenido, se coloque un valor en un campo input hidden de control de manera tal que cuando el usuario pretenda salir de la página se dispare un evento onUnload que llama a una funcion que lo único que hace es ver que el campo hidden de control tenga o no un valor pre-determinado (en este caso es "ok")

Si el campo tiene "ok" entonces quiere decir que se ha realizado una modificación y aquí viene mi dilema. La función es la siguiente:

Código:
function verificarCambios()
{
var guia=document.registros.controlModificaciones.value;

if(guia=="ok")
{
if(confirm("Se han realizado cambios al presente registro.\n¿Desea grabarlos antes de salir?"))
{//invoca a la función que uso para grabar previa validación de datos de ser necesario}
else
{alert("Operación cancelada por el usuario.");}
}
}
La función para grabar funciona perfectamente bien SI se invoca de manera normal, esto es, por medio de un boton que llame a la función en cuestión. Pero, si por ejemplo, el usuario se quiere ir a otro registro (la pantalla esta paginada) es como si estuviera cerrando la ventana o haciendo un "back" (cosa que por script no puede hacer por cierto) y claro, se dispara el evento onUnload y pregunta lo que ven que pregunta. Si hago clic en aceptar grabar antes de partir simplemente no se ejecuta PORQUE la rutina de grabación contempla de que si el registro ya existe le pregunta (tiene que hacerlo) al usuario si desea actualizar la información o no.

Ahora, lo que busco aquí es alguna función que haga algo como esto

Código:
function verificarCambios()
{
var guia=document.registros.controlModificaciones.value;

if(guia=="ok")
{
if(confirm("Se han realizado cambios al presente registro.\n¿Desea grabarlos antes de salir?"))
{//DETIENE TODO PROCESO DE ABANDONO DE PÁGINA}
else
{alert("Operación cancelada por el usuario.");}
}
}
Eso mismo, que si el usuario dice si acepto en grabar, lo primero que suceda es que se cancele la operación de abandono de página para que luego pueda llamar a la función grabar y seguir todo normal.

Espero en verdad haberme dejado entender.
Estaré al tanto de las sugerencias que me puedan brindar.

Mil gracias!!!!!!!!!!!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:23.