我有一个允许用户提交附件的.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