Tendrá que hacer las cosas manualmente con una llamada AJAX al servidor. Esto requerirá que también anule el formulario.
Pero no te preocupes, es pan comido. Aquí hay una descripción general de cómo trabajará con su formulario:
- anular la acción de envío predeterminada (gracias al objeto de evento pasado, que tiene un
preventDefault
método)
- tomar todos los valores necesarios del formulario
- disparar una solicitud HTTP
- manejar la respuesta a la solicitud
Primero, tendrá que cancelar la acción de envío del formulario así:
$("#myform").submit(function(event) {
// Cancels the form's submit action.
event.preventDefault();
});
Y luego, tome el valor de los datos. Supongamos que tiene un cuadro de texto.
$("#myform").submit(function(event) {
event.preventDefault();
var val = $(this).find('input[type="text"]').val();
});
Y luego dispara una solicitud. Supongamos que es una solicitud POST.
$("#myform").submit(function(event) {
event.preventDefault();
var val = $(this).find('input[type="text"]').val();
// I like to use defers :)
deferred = $.post("http://somewhere.com", { val: val });
deferred.success(function () {
// Do your stuff.
});
deferred.error(function () {
// Handle any errors here.
});
});
Y esto debería ser suficiente.
Nota 2: para analizar los datos del formulario, es preferible que utilice un complemento . Hará su vida realmente fácil, además de proporcionar una buena semántica que imita una acción de envío de formulario real.
Nota 2: no es necesario utilizar diferidos. Es solo una preferencia personal. También puede hacer lo siguiente, y también debería funcionar.
$.post("http://somewhere.com", { val: val }, function () {
// Start partying here.
}, function () {
// Handle the bad news here.
});