Я использую JQuery для отправки формы через запрос ajax.Я использую
form.submit(function() {
if( success ) {
return true;
}
validate(); //proceeds to an ajax call
return false;
}
В случае успешного запроса я хочу продолжить отправку формы или обратный вызов пользователя.Поэтому, если пользовательский обратный вызов не определен, я отправлю форму при успешном завершении проверки формы (из моей функции validate).
config = {
successCallback: function() {
success = true;
form.submit(); //does not work
}
};
validate = function() {
$.ajax(
...
success: function(data) {
//code logic
config.successCallback();
}
);
};
Обратный вызов успеха ajax вызовет config.successCallback (), и если он никогда не былпереопределенный пользователем, он перейдет к обычной отправке формы.Я попытался с помощью переменной экземпляра (success) убедиться, что возвращаемое значение true перейдет к отправке формы по умолчанию.
К сожалению, это не работает.Кажется, что оператор return false, который предотвращает отправку формы по умолчанию, будет игнорировать любые дальнейшие вызовы submit, даже если была установлена переменная экземпляра.Это работает только после того, как вы нажмете кнопку отправки в другой раз (это заставит ее работать дважды).
Есть ли обходной путь для этого.Я хочу использовать как пользовательский обратный вызов, когда он предоставлен, так и переходить к отправке формы по умолчанию, когда нет, и, поскольку я использую функцию ajax для проверки формы, обратный вызов успеха ajax усложняет ситуацию.