Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Confirmación de Envío de Formulario (Botón tipo submit)

Estas en el tema de Confirmación de Envío de Formulario (Botón tipo submit) en el foro de Javascript en Foros del Web. Hola a todos, espero estén bien. Sucede lo siguiente, tengo un formulario que contiene una tabla en la que muestro registros extraidos de una base ...
  #1 (permalink)  
Antiguo 05/03/2016, 02:17
Avatar de Alejandra_Sand  
Fecha de Ingreso: marzo-2016
Mensajes: 22
Antigüedad: 8 años, 1 mes
Puntos: 1
Confirmación de Envío de Formulario (Botón tipo submit)

Hola a todos, espero estén bien.

Sucede lo siguiente, tengo un formulario que contiene una tabla en la que muestro registros extraidos de una base de datos, mediante checkboxes deseo eliminar los registros seleccionados. Una vez seleccionados los registros a eliminar, clicando el botón "Eliminar Alumnos" lanzó un mensaje Confirm de JS para confirmar el envio del formulario o en su defecto cancelarlo.




***El problema***


LA CUESTIÓN ES QUE AUNQUE LE DE "ACEPTAR" O LE DE "CANCELAR" AL MENSAJE DE JS, EL SUBMIT NO SE CANCELA, SIEMPRE ES ACEPTADO EL ENVÍO DE FORMULARIO. QUISIERA SABER SI HAY UNA FALLA EN MI CÓDIGO, O QUE DEBO HACER PARA QUE DENIEGUE LA ACCIÓN DEL SUBMIT SI EL MENSAJE DE JS RECIBE UN "CANCELAR".

A continuación el script del confirm:

Código:
<script language="JavaScript"> 

    function pregunta(){ 
        if (confirm('¿Esta seguro de que desea ELIMINAR los registros seleccionados?')){ 
           document.formborrar.submit() 
            } 
          } 

</script>



A continuación el botón:

Código:
<button onclick="pregunta()" type="button" name="delete"class="btn btn-danger">
            <span class="glyphicon glyphicon-remove"></span> Eliminar Alumnos
</button>

NOTA: Si cambió el tipo del botón, es decir type="submit" por type="button", me permite cancelar el envío del formulario, pero si clico sobre aceptar, no se envían los datos guardados en el checkbox y no se realiza la eliminación.




EL RESUMEN DE MI DUDA: ¿CÓMO PUEDO DENEGAR EL SUBMIT UNA VEZ YA PRESIONADO? ¿UNA ALERTA DE JS NO LO PUEDE IMPEDIR? Traté de ser lo más explicativa posible, no tengo problemas con la eliminación de datos todo sale bien, sólo quiero denegar la confirmación de envió del formulario una vez presionado el submit.


¡DE ANTEMANO GRACIAS!
  #2 (permalink)  
Antiguo 05/03/2016, 11:02
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Confirmación de Envío de Formulario (Botón tipo submit)

Bienvenida a Foros del Web.

Solo tienes que pasarle la instancia del objeto del evento que se genera automáticamente. Esto debe realizarse de la siguiente manera:
Código HTML:
Ver original
  1. onclick="pregunta(event)"

Y, en el código JavaScript, lo recibes como argumento de la función:
Código Javascript:
Ver original
  1. function pregunta(e){ //Puede ser cualquier otra letra o cadena de caracteres
  2.     //...
  3. }

Una vez hecho esto, solo tienes que cancelar la ejecución del evento click, el cual, en este caso, disparará al evento submit, que es el encargado de realizar el envío. Para esto, debes utilizar el método .preventDefault().
Código Javascript:
Ver original
  1. if (confirm('¿Esta seguro de que desea ELIMINAR los registros seleccionados?')){
  2.     document.formborrar.submit();
  3. }
  4. else{
  5.     e.preventDefault();
  6. }

Que puede ser reducido a esto:
Código Javascript:
Ver original
  1. if (!confirm('¿Esta seguro de que desea ELIMINAR los registros seleccionados?')){
  2.     e.preventDefault();
  3. }

Puesto que, solo al pulsar el botón "Cancel", se evitará el envío de los datos; caso contrario, el proceso continuará normalmente.

Un saludo
__________________
«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 05/03/2016, 12:31
Avatar de Alejandra_Sand  
Fecha de Ingreso: marzo-2016
Mensajes: 22
Antigüedad: 8 años, 1 mes
Puntos: 1
Respuesta: Confirmación de Envío de Formulario (Botón tipo submit)

Muchisímas gracias, precisamente debía agregar a la función la instancia del evento tal cual dijo usted Alexis88. Problema resulto.

Gracias nuevamente ¡Saludos!

Etiquetas: confirm, formulario, javascript+php, submit
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:37.