我在ASP.NET MVC应用程序中有这个表单:
@using (Ajax.BeginForm("SaveTransaction", "Addons", new AjaxOptions() { HttpMethod = "POST" }, new { id = "TransForm", enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
...
}
我正在使用此jQuery代码提交表单,但它正在提交表单两次。
(function () {
var bar = $('.progress-bar');
var percent = $('.progress-bar');
$('#TransForm').ajaxForm({
beforeSend: function () {
var percentVal = '0%';
bar.width(percentVal)
percent.html(percentVal);
percent.fadeIn();
},
uploadProgress: function (event, position, total, percentComplete) {
var percentVal = percentComplete + '%';
bar.width(percentVal)
percent.html(percentVal);
},
success: function (data) {
var percentVal = '100%';
bar.width(percentVal)
percent.html(percentVal);
percent.fadeOut();
// Get addonID
var ID = $('#BatchID').val();
//Resets form
ClearSelection();
//update the partial views
UpdateEvents(ID);
},
error: function (data) {
ReturnStatus("alert-danger", 'data.responseText');
},
complete: function (data) {
ReturnStatus("alert-success", message);
}
});
})();
此代码工作正常 - 它提交,保存并返回正确的数据 - 它只是执行两次。
我尝试添加beforeSend: function(e)...
,然后e.preventDefault();
,但它没有改变任何内容。如何将其更改为包含e.preventDefault();
,以便表单不会发送两次?