Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Presionar 1 sola vez el boton

Estas en el tema de Presionar 1 sola vez el boton en el foro de Javascript en Foros del Web. Buenas tarde comunidad, quisiera saber si hay algun evento o funcion para que el formulario sea enviado una sola vez por medio de un boton, ...
  #1 (permalink)  
Antiguo 04/06/2015, 18:24
Avatar de yoyo_38tuzo  
Fecha de Ingreso: febrero-2015
Mensajes: 44
Antigüedad: 9 años, 9 meses
Puntos: 0
Presionar 1 sola vez el boton

Buenas tarde comunidad, quisiera saber si hay algun evento o funcion para que el formulario sea enviado una sola vez por medio de un boton, lo que pasa que hice una prueba en donde el internet es muy lento, y si pulso varias veces el boton "Enviar Formulario" me lo envia varias veces, de antemano, muchas gracias...
  #2 (permalink)  
Antiguo 04/06/2015, 18:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Presionar 1 sola vez el boton

Cuando envías los datos del formulario a procesarse, se produce el evento submit. Lo que puedes hacer (entre las tantas otras alternativas que pueden haber) es usar una variable contadora con el cero como valor inicial, de tal modo que la primera vez que se produzca el evento, lo cancelas con el método .preventDefault() y aumentas el valor de la variable contadora en 1, luego, evalúas el nuevo valor de dicha variable y solo si es igual a 1, utilizas el método .submit() para procesar el formulario. Si se vuelve a pulsar el botón de envío, el valor de la variable contadora aumentará y ya no será igual a 1, por lo que no se volverá a enviar.

Código JavaScript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     var formulario = document.querySelector("#el id del formulario"),
  3.         contador = 0;
  4.  
  5.     formulario.addEventListener("submit", function(event){
  6.         event.preventDefault(); //Cancelo el evento
  7.  
  8.         contador++; //Aumento el valor de la variable contadora en 1
  9.  
  10.         if (contador === 1){ //Si el valor de la variable contadora es igual a 1
  11.             this.submit(); //Envío los datos del formulario a procesarse
  12.         }
  13.     }, false);
  14. }, false);

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 04/06/2015, 21:05
Avatar de yoyo_38tuzo  
Fecha de Ingreso: febrero-2015
Mensajes: 44
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Presionar 1 sola vez el boton

Lo realice mediante la siguiente funcion, gracias...

Código Javascript:
Ver original
  1. function checkSubmit() {
  2.     document.getElementById("btsubmit").value = "Enviando...";
  3.     document.getElementById("btsubmit").disabled = true;
  4.     return true;
  5. }
  #4 (permalink)  
Antiguo 04/06/2015, 22:18
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Presionar 1 sola vez el boton

Con eso solo deshabilitas el botón de envío, pero hay otras formas de seguir realizando el envío.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: boton, formulario, funcion, presionar, vez
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 10:22.