Не знаю, зачем вам нужно это
return savePost()
но со второго раза отправляется, по всей видимости, от того, что savePost() в первый раз возвращает
false
function savePost()
{
// Различные валидации. t - это переменная, которая содержит значение
// true/false в зависимости от того, пройдена ли валидация
var t=true;
if ($('#post_form input[name=post_name]').val().length<1)
{
$('#post_form input[name=post_name]').css('background-color','#edc4c4');
t=false;
}
else $('#post_form input[name=post_name]').css('background-color','#ffffff');
if ($('#post_form textarea[name=post_text]').val().length<1)
{
$('#post_form textarea[name=post_text]').css('background-color','#edc4c4');
t=false;
}
else $('#post_form textarea[name=post_text]').css('background-color','#ffffff');
// Если валидация пройдена
if (t)
{
// Сформировать строку параметров из формы
var qString = $('#post_form').formSerialize();
// Отправить форму асинхронным запросом
$.post("/include/save_post.php", qString, function (data)
{
// Если все прошло нормально, вывести окно и перегрузить текущую страницу
alert("Изменения сохранены");
top.location.href=top.location.href;
});
}
// Блокировать переход по форме
return false;
}
Данные у вас отправляются асинхронно (http/ajax-запросом). Так сделано специально.
Или вы не видете окна "Изменения сохранены"? Или после этого не перезагружается страница?
Если вам не нужна асинхронная отправка, то можно оставить вот так, сохранив валидацию:
function savePost()
{
// Различные валидации. t - это переменная, которая содержит значение
// true/false в зависимости от того, пройдена ли валидация
var t=true;
if ($('#post_form input[name=post_name]').val().length<1)
{
$('#post_form input[name=post_name]').css('background-color','#edc4c4');
t=false;
}
else $('#post_form input[name=post_name]').css('background-color','#ffffff');
if ($('#post_form textarea[name=post_text]').val().length<1)
{
$('#post_form textarea[name=post_text]').css('background-color','#edc4c4');
t=false;
}
else $('#post_form textarea[name=post_text]').css('background-color','#ffffff');
return t;
}