我有一個允許用戶提交附件的.net mvc應用程序。爲此,我不使用任何特殊的東西,比如插件等,只是使用標準的表單文章。使用jQuery對話框攔截文件上傳提交
但是,我想攔截具有確認對話框的請求,並且只在OK上發佈。
爲了做到這一點,我使用了preventDefault,否則對話框只會顯示一秒,然後表單發佈。
看起來很直截了當。我遇到的問題是,因爲它是一個文件上傳,我需要繼續提交,並基本上撤銷preventDefault。
所以我遇到的問題是我必須使用preventDefault來停止標準提交,但它也會在用戶選擇確定繼續時完全停止提交。同樣,由於文件上傳,我必須允許默認行爲,因爲試圖以任何其他方式執行它,例如$ .post('@ Url.Action(「etc」,「etc」)',$('#form ').serialize());然後會導致控制器不接收上傳的文件。
這裏是我的代碼至今:
$(document).ready(function() {
$("form").submit(function (e) {
var evt = e || event;
if (evt.preventDefault)
evt.preventDefault();
else
evt.returnValue = false;
$('#divConfirm').dialog({
height: 200,
width: 450,
title: 'Confirm',
modal: true,
autoOpen: false,
buttons: {
"Continue": function() {
$(this).dialog("close");
return true;
//$.post('@Url.Action("etc", "etc")', $('#form').serialize());
},
"Cancel": function() {
$(this).dialog("close");
//evt.preventDefault();
}
}
});
$('#divConfirm').dialog("open");
});
});
所以的preventDefault停止所有submision甚至接受,但刪除它完全阻止的對話框中,只有閃爍第二個對話框。我已經搜索過類似的帖子,但還沒有找到任何解決方案。
任何幫助,非常感謝。
而不是在提交時執行它爲什麼不調用對話框並使用對話框的OK一側來執行提交功能? – 2012-03-16 21:25:06