Во-первых, мне нравится концепция jQuery о обработчике событий. Пожалуйста, посмотрите на следующий код.
$('#someid').submit(function()
{
// some logic for checking input data before submit
return isValid($(this));
});
Но у меня возникает проблема, когда я пытаюсь создать индикатор для отображения процесса отправки. Потому что jQuery не имеет никакой функции, как до / после события xxx. Таким образом, невозможно создать какой-либо процесс, подобный следующей диаграмме.
Блок-схема http://qmv6sa.bay.livefilestore.com/y1pybXwRr2DP061WcFlJCQppOJnwmSvT_CBcON53vyKJ-bvmQAMd6npqOm9VjorNRoqY2eUYt9mVCtEL_HArowjUtWRVEnwFu4J/flow.PNG
Хотя можно создать вышеприведенную диаграмму, но в реальном приложении 3 функции в разных событиях не знают друг друга. Таким образом, невозможно создать какую-либо функцию, подобную следующему коду.
function form_submit()
{
if(isValid($(this)))
{
// send form data via AJAX/POST
submitForm($(this));
// display animation
displayAnimation();
}
else
{
displayError();
}
}
У вас есть идеи для решения этого вопроса?
Обновление # 1
Мне нравится что-то вроде следующего кода.
// Before Submit function will receive function as parameter. If some function return false this submit will not be submitted.
$('#form1').beforeSubmit(function()
{
return isValid($(this));
});
// So, I can create custom submit function for posting data via AJAX or any protocal.
$('#form1').submit(function()
{
var serializedData = serializeForm($(this));
$.postForm($(this), serializedData);
$(this).afterSubmit();
return false;
}
// After that, I can display animation for showing form process.
$('#form1').afterSubmit(function()
{
displayAnimation($(this));
}