我有一个弹出确认对话框的表单(你想继续)现在它会弹出但是表单会同时发送到我的控制器,无论你是否按下它都会开始处理。如何在显示/选择javascript确认之后暂停表单提交。
@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");
});
});
答案 0 :(得分:4)
立即阻止默认操作,然后按下ok按钮触发提交。
$(function () {
$("#Confirm").dialog({
autoOpen: false,
buttons: {
"Ok": function() {
$(this).dialog("close");
$('#MyForm')[0].submit();
},
Cancel: function() {
$(this).dialog("close");
}
}
});
$("#MyForm").submit(function (e) {
e.preventDefault();
$("#Confirm").dialog("open");
});
});
答案 1 :(得分:2)
将submit
按钮移到表单之外,然后将其更改为常规<input type="button"/>
。
您的模态“确定”功能会为您提交,因此您不需要表单中的提交按钮。
@using (Html.BeginForm("Process", "Home", FormMethod.Post,
new { id ="MyForm" })) {
@Html.TextBoxFor(m => m.Name);
// other form controls...
}
<input id="Submit" type="button" value="Apply Changes" />
答案 2 :(得分:0)
你也可以使用&#34; onsubmit&#34;表单事件本身,如果您希望实际提交数据,则返回true
或false
。