Foros del Web » Programando para Internet » Javascript »

¿Como bloquear F5 durante un submit?

Estas en el tema de ¿Como bloquear F5 durante un submit? en el foro de Javascript en Foros del Web. Saludos, mi problema es el siguiente: Cuando quiero guardar los datos de mi formulario, hago click en el botón guardar de mi barra de herramientas, ...
  #1 (permalink)  
Antiguo 12/09/2012, 13:26
koy
 
Fecha de Ingreso: octubre-2006
Mensajes: 2
Antigüedad: 17 años, 6 meses
Puntos: 0
Pregunta ¿Como bloquear F5 durante un submit?

Saludos, mi problema es el siguiente:

Cuando quiero guardar los datos de mi formulario, hago click en el botón guardar de mi barra de herramientas, esta llama a una función que hace una serie de validaciones y al final hace submit. El problema se presenta cuando el usuario oprime la tecla F5 varias veces durante el submit, por cada vez que la oprime se crea un nuevo registro en mis tablas.

Cabe destacar que en mi formulario tengo una validacion (que conseguí en la web) que efectivamente impide que ocurra un refresh de pantalla cuando se oprime la tecla F5, pero solamente funciona mientras no ocurra el submit.

Lo otro que debo destacar es que el navegador que debo utilizar (obligatoriamente) es Firefox.

¿Alguien tiene alguna sugerencia? creo que algo ocurre durante el submit que le hace ignorar los eventos de teclado.
  #2 (permalink)  
Antiguo 12/09/2012, 14:15
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: ¿Como bloquear F5 durante un submit?

Bueno

esta es una forma de hacerlo en JavaScript con PHP tambien puedes hacerlo pero ya en PHP lo unico que harias seria que no te inserte varias veces.

Código Javascript:
Ver original
  1. if(window.attachEvent){
  2.         document.attachEvent("onkeydown",function(){
  3.             switch (event.keyCode) {
  4.                 case 116 : //F5 button
  5.                     event.returnValue = false;
  6.                     event.keyCode = 0;
  7.                     return false;
  8.                 case 82 : //R button
  9.                     if (event.ctrlKey) {
  10.                         event.returnValue = false;
  11.                         event.keyCode = 0;  
  12.                         return false;
  13.                     }
  14.             }
  15.         });
  16.     }else{
  17.         document.addEventListener("keydown",function(){
  18.             switch (event.keyCode) {
  19.                 case 116 : //F5 button
  20.                     event.returnValue = false;
  21.                     event.keyCode = 0;
  22.                     return false;
  23.                 case 82 : //R button
  24.                     if (event.ctrlKey) {
  25.                         event.returnValue = false;
  26.                         event.keyCode = 0;  
  27.                         return false;
  28.                     }
  29.             }
  30.         });
  31.     }

Con esto deshabilitamos el F5 y la Tecla Ctr + R (bueno en realidad la R)
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 12/09/2012, 14:20
Avatar de Prais  
Fecha de Ingreso: octubre-2010
Mensajes: 114
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: ¿Como bloquear F5 durante un submit?

Realiza la inserción de los datos fuera de la pagina del formulario, hay muchas formas de hacerlo (mediante Ajax, Jquery).

La idea es que envíes tus datos, otro archivo haga la inserción y si todo anda bien devuelves el mensaje de éxito.

Saludos
  #4 (permalink)  
Antiguo 12/09/2012, 15:28
koy
 
Fecha de Ingreso: octubre-2006
Mensajes: 2
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: ¿Como bloquear F5 durante un submit?

Dradi7, el problema persiste, al oprimir F5 durante el submit continúa insertando registros de mas. Creo que voy a tener que rehacer el formulario y usar Ajax.
  #5 (permalink)  
Antiguo 13/09/2012, 05:21
Avatar de Prais  
Fecha de Ingreso: octubre-2010
Mensajes: 114
Antigüedad: 13 años, 6 meses
Puntos: 6
Exclamación Respuesta: ¿Como bloquear F5 durante un submit?

Cita:
Iniciado por koy Ver Mensaje
Creo que voy a tener que rehacer el formulario y usar Ajax.
Hola, NO entiendo por que te complicas en rehacer el formulario, si este es independiente de como trates los datos ingresados.

te simplifico mas el tema:

No uses Ajax, ni Jquery (si es que te complica), simplemente en el action del formulario apunta a un archivo que capture via POST todos los datos del formulario y luego realice la insercion, Una vez insertado. le aplicas un Header para redirigir al usuario.

Pdta. NO creo que bloqueando el f5 consigas mucho... ya que siempre habrá forma de actualizar y esa solución no es nativa de nada.

Etiquetas: php, submit, validar
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 14:57.