Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/08/2012, 10:50
Avatar de Dradi7
Dradi7
 
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: Bloquear Submit con Base en Respuesta de Petición Ajax

Cita:
Iniciado por GUILLHERMOSOFT Ver Mensaje
Cordial Saludo

Actualmente necesito bloquear un submit con base en la respuesta de una petición ajax, pero no he podido bloquearlo, la petición y la condición de retorno se llevan acabo sin problema por eso en mi código esta la línea 'alert("hola");', por medio de la cual testeo que la condición se cumpla y el alert se imprime correctamente, más he probado con "return false;", "event.preventDefault;" y "event.stopPropagation();", sin embargo el submit no se bloquea, así mismo he probado llamando el evento submit seleccionando el formulario completo y no el botón, pero aún así no funciona, por lo cual agradecería que si alguno me pudiera ayudar lo haga.

Código:
$(document).ready(function(){
    //$("#ventas").submit(function(event) {
    $("#aceptar").click(function(event) {
        $.ajax({
            url: "buscarCodigosRepetidos",
            data: $("#ventas").serialize(),
            type: "POST",
            dataType: "html",
            async: false,
            success: function(data) {
                $("#detalleCodigosRepetidos").html(data);
                if(data) {
                    alert("hola");
                    //return false;
                    event.preventDefault;
                    //event.stopPropagation();
                }
            }
        });
    });
});
Quedo atento a sus respuestas y/ó comentarios.

Muchas gracias.
Bueno amigo analizamos bien lo que necesitas:

1.- el botón aceptar de tipo submit es para enviar los campos a otro formulario
2.- en ese mismo boton quieres validar que no existe codigo repetido si es que existe bloquear el submit

Entonces

Lo mas factible seria bloquear siempre el submit del boton con event.preventDefault(); es decir este código va al final.

En tu ajax tu estabas haciendo que si hubiera código repetido entonces detuvieras el submit, ahora has lo mismo pero al revés si no encuentra código repetido envía el submit.

Ejemplo:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $("#aceptar").click(function(event) {
  3.         $.ajax({
  4.             url: "buscarCodigosRepetidos",
  5.             data: $("#ventas").serialize(),
  6.             type: "POST",
  7.             dataType: "html",
  8.             async: false,
  9.             success: function(data) {
  10.                 $("#detalleCodigosRepetidos").html(data);
  11.                 //validando que no se encontro ningun repetido
  12.                 if(!data) {
  13.                     $('#myform').submit();
  14.                 }
  15.             }
  16.         });
  17.         event.preventDefault();
  18.     });
  19. });
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones