2010-02-18 12 views
6

Estoy usando jquery ajax para eliminar un cliente de una tabla. ¿Cómo mostraría un cuadro de confirmación antes de enviar el formulario? Preferiría usar el diálogo de jQuery.¿Cómo se muestra un cuadro de diálogo de confirmación antes de enviar un formulario con el método jQuery ajax?

He visto preguntas como esta antes, pero ninguna de ellas me ha ayudado.

Este es mi código:

$.ajax({ 
     type: "POST", 
     url: "delete/process.php", 
     data: "delcustomerid="+ delcustomerid, 
     success: refreshTable 
    }); 

Respuesta

11

El ajax function has a beforeSend event que se puede utilizar para mostrar el cuadro de diálogo antes de enviar el formulario.

Si el cuadro de diálogo indica que el formulario no debe enviarse, devolverá falso de su función para que el envío del formulario no se realice.

En su caso, se debe hacer lo siguiente:

$.ajax({ 
    beforeSend: function (request) { 
     // This is where you show the dialog. 
     // Return false if you don't want the form submitted. 
    }, 

    type: "POST", 
    url: "delete/process.php", 
    data: "delcustomerid="+ delcustomerid, 
    success: refreshTable 
}); 

Si emite un POST para la forma (que parece que lo son), que altamente recomiendo que tome un vistazo a la jQuery form plugin ya que simplifica el proceso de envío de formularios a través de llamadas AJAX, y utiliza todos los mismos parámetros que hace una llamada al ajax.

+0

He utilizado el complemento de formulario jquery, pero me encontré con algunos problemas. Me resulta más fácil (no más rápido jajaja) hacer cosas sin el complemento. Gracias por la respuesta, es justo lo que estoy buscando. ¿Qué es (solicitud)? – user272899

+0

@ user272899: El parámetro de solicitud contiene la instancia de XMLHTTPRequest que se usará para realizar la solicitud. No necesariamente lo necesita, pero se lo pasa a la función. – casperOne

+0

@ user272899: Además, si lo desea, explique los problemas del complemento de formulario jQuery. He escrito algo de información sobre el uso del complemento jQuery form junto con la validación (cosas que tienes que buscar) aquí: http://stackoverflow.com/questions/1996125/how-to-use-jquery-validation-plugin- with-metadata-and-the-jquery-forms-plugin-wi – casperOne

1

Debe crear una función que realice la llamada que muestra después de comprobar la entrada del usuario.

por ejemplo:

function DeleteWithCheck() { 
    if (confirm("Are you sure you want to delete customer "+delcustomerid.ToString())) 
    { 
    $.ajax({ 
     type: "POST", 
     url: "delete/process.php", 
     data: "delcustomerid="+ delcustomerid, 
     success: refreshTable 
    }); 
    } 
    else 
    alert("Aborted"); 
} 

llamar a esta función cuando se quiere hacer el borrado.

Cuestiones relacionadas