我试图打电话给确认,然后是来自MVC行动链接的警报功能,我被卡住了。代码如下:
我的观点有以下actionlink:
@Html.ActionLink("JQuery Testing", "BuildProject", Model, new { onclick = " return ConfirmProjectSubmit()" })
调用控制器将项目保存到数据库。我试图在点击上发表确认声明。执行该操作后,将调用以下操作:
return RedirectToAction("ProjectDetails", "Project", new RouteValueDictionary(new { id = currentProject.Id, msg = message }));
提醒用户该项目实际已创建。
然后在我的观点底部:
@section scripts {
<script type="text/javascript">
function ConfirmWorkflowSubmit() {
$.confirm({
title: 'Confirm!',
content: 'Simple confirm!',
buttons: {
confirm: function () {
},
cancel: function () {
}
}
});
return false;
};
</script>
@if (ViewBag.message != null)
{
<script type="text/javascript">
$(document).ready(function () {
$.alert({
title: 'Workflow successfully created',
content: '@ViewBag.message',
type: 'green',
});
});
</script>
}
}
两个动作都在触发,但是不正确。我是MVC的新手,还是Jquery的新手。基本上我需要弄清楚如果用户没有确认如何不提交,然后确保消息只在回来的路上弹出。我想我只是需要帮助来订购我所拥有的。
提前致谢。
EDIT。好的,所以我看到了部分问题。它不是实际提交表单的$ confirm函数,它是在对话框打开后单击的按钮操作。我真的被困在这里了,这比我做的要容易。救命啊!
答案 0 :(得分:1)
我并不是说你不能按照自己的方式去做,但这通常是我设置绑定的方式:
$(document).ready(function ()
{
// add the e here -- it is the event which initiated the binding
$(".buildButton").on("click", function (e)
{
if (ConfirmProjectSubmit())
{
alert('confirm');
}
else
{
// e.preventDefault() cancels the click action
e.preventDefault();
alert('cancel');
}
});
});
function ConfirmProjectSubmit()
{
// some confirm logic
// return true for confirmed, false for cancelled
return false;
}
删除操作中的onclick
。没有必要使用jQuery绑定和 onClick。
这是一个大纲,你可以在不同的地方添加你的逻辑来完成它。