Я для универсальной "аяксификации" форм использовал такой скрипт:
$(document).submit(function(event){
var form = event.target;
if ($(form).data('async') == undefined) {
return true;
}
event.preventDefault();
var data = $(form).serialize();
$(form.elements).prop('disabled', true);
$(form).css('opacity', 0.5);
$.post(form.action, data, function(response) {
$(form).replaceWith($(response));
});
});
А формам, которые нужно зааяксить добавляешь атрибут data-async.
Форма после отправки заменяется тем, что пришлет сервер в ответ.