我有一个表单弹出确认对话框(您是否想继续),现在它弹出,但表单正在同时发送给我的控制器,它开始无论你点击是或否,处理。如何在显示/选择javascript确认后暂停表单提交。确认暂停表单提交,直到Ok出现
@using (Html.BeginForm("Process", "Home", FormMethod.Post,
new { id ="MyForm" })) {
@Html.TextBoxFor(m => m.Name);
// other form controls...
<input id="Submit" type="submit" value="Apply Changes" />
}
的javascript:(使用jquery-UI)
$(function() {
$("#Confirm").dialog({
autoOpen: false,
buttons: {
"Ok": function() {
$(this).dialog("close");
$('#MyForm').submit();
return true;
},
Cancel: function() {
$(this).dialog("close");
event.preventDefault();
return false;
}
}
});
$("#Submit").click(function() {
$("#Confirm").dialog("open");
});
});
虽然这会工作,为什么还要有一个提交按钮,如果你只是带走提交按钮的功能? – Rob
这不会消除提交按钮的功能吗?这样做*保留*默认行为,方法是通过按下输入按钮或单击提交按钮来提交表单,两者都会得到一个确认对话框。如果您使用按钮单击来完成该工作,则在输入上按Enter将绕过确认对话框。 –
确实如此,您可以调用e.preventDefault()来取消事件并提交表单。那么你只需打开模式?为什么不用常规按钮打开模式,如果用户点击“确定”,则使用$('#MyForm')。submit()提交表单。 – Rob