不确定发生了什么变化,但是今天注意到,当我向Ajax请求提交表单时,它可以正常工作,但是,在下一个表单中,URL保留为上一个调用的URL,或者只是回退到页面网址。这仅在表单提交时发生,而不是在通过Ajax加载其他内容时发生。
这里是一个例子:
我曾经由vars设置Ajax url,并将其更改为从形式动作中获取,该形式动作在模态负载上进行了更新。在使用console.log的各个阶段可以看到正确的URL,该表单显示正确的URL,但是在提交时却没有。
我有一个setupAjax清除了Ajax url,但这似乎也没有任何作用。
下面是现在似乎已开始引起问题的代码的一部分:
@Start_Date datetime
@End_Date datetime
@End_Date - @Start_Date = 5 days, 3 hours, 2 min, 10 sec
setupModal和setupAjax位于另一个文件中,如下所示:
var _loadModal = function(widget, id = null, data = null){
var modal = EMPGlobal.setupModal();
modal.form.attr('id', widget);
modal.form.attr('action', pageUrl + widget);
EMPGlobal.ajaxSetup(modal.load, true, modal.message);
$.ajax({
url: url,
data: data,
method: 'GET',
success: function(result) {
modal.load.html(result);
if(EMPGlobal.modalShown(modal.show) == false){
modal.show.modal('show');
}
_validateForm(widget, modal);
}
});
};
_validateForm = function(formID, modal){
console.log(formID);
var prevComplete = 0;
validator = $('form#' + formID).validate({
submitHandler: function (form){
console.log(form);
EMPGlobal.ajaxSetup(modal.load, true, modal.message);
$.ajax({
url: $('form#' + formID).attr('action'),
type: "POST",
data: new FormData($(form)[0]),
success: function (result) {
EMPGlobal.showAlert(result);
validator.resetForm();
$('form#' + formID).validate('destroy');
modal.show.modal('toggle');
$('#' + pageName + ' ul.alphabet-list li.selected a').click();
return false;
}
});
return false;
}
});
modal.save.unbind().on('click', function(){
$("#" + formID).submit();
});
};
这真让我感到难过,无法理解。
如果需要进一步的信息,请告诉我。
提前感谢您的帮助