Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Bloquear Submit con Base en Respuesta de Petición Ajax

Estas en el tema de Bloquear Submit con Base en Respuesta de Petición Ajax en el foro de Frameworks JS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/08/2012, 09:43
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 8 meses
Puntos: 2
De acuerdo Bloquear Submit con Base en Respuesta de Petición Ajax

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.

Última edición por GUILLHERMOSOFT; 13/08/2012 a las 09:50
  #2 (permalink)  
Antiguo 13/08/2012, 09:51
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 17 años
Puntos: 75
Respuesta: Bloquear Submit con Base en Respuesta de Petición Ajax

Puedes hacer el llamado a el cuando valide submit siempre y cuando el evento que ejecuta todo ese código no sea un type="submit" sino un button, o por lo menos a mí me ha funcionado así.

PD: el "más" se tilda cuando se agrega, si el "mas" se puede reemplazar por un "pero" o por un "sin embargo" no se tilda.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #3 (permalink)  
Antiguo 13/08/2012, 09:58
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 8 meses
Puntos: 2
De acuerdo Respuesta: Bloquear Submit con Base en Respuesta de Petición Ajax

Gracias por tu respuesta, sin embargo un button no me sirve, ya que el formulario que tengo, es SUPER!!!!!!!!!!!!! complejo, usar ese button, me podria significar mucho trabajo extra, el remedio podria resultar más caro que la enfermedad, lo que requiero debe funcionar con el submit.
  #4 (permalink)  
Antiguo 13/08/2012, 10:44
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 8 meses
Puntos: 2
De acuerdo Respuesta: Bloquear Submit con Base en Respuesta de Petición Ajax

Jejejejeje.......... me autorrespondo....... por si a alguno de ustedes le sirve luego.......

Código:
var envioFormulario;

//Buscar códigos de tiendas repetidos en el formulario
$(document).ready(function(){
    $("#aceptar").click(function(event) {
        envioFormulario = "";
        $.ajax({
            url: "buscarCodigosRepetidos",
            data: $("#ventas").serialize(),
            type: "POST",
            dataType: "html",
            async: false,
            success: function(data) {
                $("#detalleCodigosRepetidos").html(data);
                if(data) {
                    envioFormulario = "bloquear";
                }
            }
        });
        
        if(envioFormulario == "bloquear") {
            return false;
        }
    });
});
  #5 (permalink)  
Antiguo 13/08/2012, 10:50
Avatar de 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
  #6 (permalink)  
Antiguo 13/08/2012, 10:54
Avatar de 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
Jejejejeje.......... me autorrespondo....... por si a alguno de ustedes le sirve luego.......

Código:
var envioFormulario;

//Buscar códigos de tiendas repetidos en el formulario
$(document).ready(function(){
    $("#aceptar").click(function(event) {
        envioFormulario = "";
        $.ajax({
            url: "buscarCodigosRepetidos",
            data: $("#ventas").serialize(),
            type: "POST",
            dataType: "html",
            async: false,
            success: function(data) {
                $("#detalleCodigosRepetidos").html(data);
                if(data) {
                    envioFormulario = "bloquear";
                }
            }
        });
        
        if(envioFormulario == "bloquear") {
            return false;
        }
    });
});
Bueno no veo que sea conveniente congelar la pantalla del usuario y si existe muchas transacciones, has verificado que pasaría si el tiempo de respuesta fuera larga, lo veria un poco incomodo yo como usuario ver que mi pantalla sea congelado.

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones

Etiquetas: ajax, bloquear, formulario, funcion, html, respuesta, 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 08:21.