*** Обновление ****
Пример здесь http://pastebin.me/4937b07714655 из 1 варианта, который должен вести подсчет сообщений и запускать обратный вызов анимации только для последнего сообщения.
почему вы не возвращаете false из click или event.preventDefault () и в обратном вызове анимации отправляете форму
$(document).ready(function() {
$('#powerSearchSubmitButton').click(function(ev) {
startLoad();
ev.preventDefault();
});
});
function startLoad() {
var $messages=$('.message');
var count=$messages.length -1;
$messages.each(function(i) {
$(this).animate({ opacity: 0 }, 500, i == count ? submitForm:null);
});
};
function submitForm(){
$('#yourForm').submit();
}