【发布时间】:2018-05-24 06:14:33
【问题描述】:
我使用 ajax 提交了一个多部分表单,它从不调用成功函数(尽管表单提交确实成功),它总是重定向到表单的 php 页面。
这是我的代码:
$('#pre-register-contact-form').on('submit', function (e) {
if (!e.isDefaultPrevented()) {
var url = "preregisterform.php";
$.ajax({
type: "POST",
url: url,
contentType: false,
data: new FormData($(this)),
processData: false,
success: function (data)
{
// Never reaches here!
var messageAlert = 'alert-' + data.type;
var messageText = data.message;
var alertBox = '<div class="alert ' + messageAlert + ' alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' + messageText + '</div>';
if (messageAlert && messageText) {
$('#pre-register-contact-form').find('.messages').html(alertBox);
$('#pre-register-contact-form')[0].reset();
grecaptcha.reset();
}
},
error: function(error) {
alert(error);
}
});
return false;
}
});
但是,如果我不以多部分方式提交表单,使用下面的代码,它会调用成功函数:
$('#pre-register-contact-form').on('submit', function (e) {
if (!e.isDefaultPrevented()) {
var url = "preregisterform.php";
$.ajax({
type: "POST",
url: url,
data: $(this).serialize(),
success: function (data)
{
var messageAlert = 'alert-' + data.type;
var messageText = data.message;
var alertBox = '<div class="alert ' + messageAlert + ' alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' + messageText + '</div>';
if (messageAlert && messageText) {
$('#pre-register-contact-form').find('.messages').html(alertBox);
$('#pre-register-contact-form')[0].reset();
grecaptcha.reset();
}
}
});
return false;
}
});
我该如何解决这个问题?
【问题讨论】:
-
@MuhammadOmerAslam 不,这不是说没有调用成功函数...
标签: javascript jquery ajax