jQuery - возобновить отправку формы после вызова ajax
Можно ли остановить отправку и повторную отправку формы из-за успеха вызова ajax?
На данный момент он добирается до бита успеха, но не отправляет повторно форму, которая должна отправить и перенаправить пользователя наhttp://example.com Веб-сайт.
Большое спасибо за любую помощь заранее
Если это невозможно сделать таким образом, есть ли другой способ заставить его работать?
$(document).ready(function() {
$('form').submit(function(e) {
e.preventDefault();
$.ajax({
url: $('form').attr('action'),
type: 'post',
data: $('form').serialize(),
success: function(data) {
if (data == 'true')
{
$('form').attr('action', 'http://example.com');
$('form').unbind('submit').submit(); // mistake: changed $(this) to $('form') - Problem still persists though it does not resubmit and redirect to http://example.com
}
else
{
alert('Your username/password are incorrect');
}
},
error: function() {
alert('There has been an error, please alert us immediately');
}
});
});
});
Редактировать:
Сообщения Stackoverflow проверены на наличие кода ниже:
Возобновить отправку формы после вызова $ .ajaxКак включить event.preventDefault?Я просто подумал, что упомяну, что я тоже пробовал этот код безрезультатно.
var ajaxSent = false;
$(document).ready(function() {
$('form').submit(function(e) {
if ( !ajaxSent)
e.preventDefault();
$.ajax({
url: $('form').attr('action'),
type: 'post',
data: $('form').serialize(),
success: function(data) {
if (data == 'true')
{
alert('submit form');
ajaxSent = true;
$('form').attr('action', 'http://example.com');
$('form').submit();
return true;
}
else
{
alert('Your username/password are incorrect');
return false;
}
},
error: function() {
alert('There has been an error, please alert us immediately');
return false;
}
});
});
});
Я также попробовал этот код без какой-либо удачи.
$(document).ready(function() {
$('form').submit(function(e) {
e.preventDefault();
$.ajax({
url: $('form').attr('action'),
type: 'post',
data: $('form').serialize(),
success: function(data) {
if (data == 'true')
{
$('form').attr('action', 'http://example.com');
$('form').unbind('submit').submit();
return true;
}
else
{
alert('Your username/password are incorrect');
return false;
}
},
error: function() {
alert('There has been an error, please alert us immediately');
return false;
}
});
});
});