Você precisará fazer as coisas manualmente com uma chamada AJAX para o servidor. Isso exigirá que você substitua o formulário também.
Mas não se preocupe, é um pedaço de bolo. Aqui está uma visão geral de como você trabalhará com seu formulário:
- substituir a ação de envio padrão (graças ao objeto de evento passado, que possui um
preventDefault
método)
- pegue todos os valores necessários do formulário
- disparar uma solicitação HTTP
- lidar com a resposta à solicitação
Primeiro, você precisará cancelar a ação de envio do formulário da seguinte forma:
$("#myform").submit(function(event) {
// Cancels the form's submit action.
event.preventDefault();
});
E então, pegue o valor dos dados. Vamos apenas assumir que você tem uma caixa de texto.
$("#myform").submit(function(event) {
event.preventDefault();
var val = $(this).find('input[type="text"]').val();
});
E, em seguida, dispare uma solicitação. Vamos apenas assumir que é uma solicitação 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.
});
});
E isso deve fazê-lo.
Nota 2: para analisar os dados do formulário, é preferível usar um plug - in . Isso tornará sua vida muito fácil, além de fornecer uma boa semântica que imita uma ação de envio de formulário real.
Nota 2: Você não precisa usar adiadores. É apenas uma preferência pessoal. Você também pode fazer o seguinte e deve funcionar também.
$.post("http://somewhere.com", { val: val }, function () {
// Start partying here.
}, function () {
// Handle the bad news here.
});