当用户单击DELETE按钮时,我想显示一个确认对话框菜单。
但是按钮不会触发我的脚本。触发JavaScript后,如果用户选择“确定”,则脚本必须转到该动作。否则,如果用户单击“取消”,则什么也不会发生。
这是JavaScript代码;
<script type="text/javascript">
$(document).ready(function () {
$(".confirmDialog").on("click", function (e) {
// e.preventDefault(); use this or return false
var url = $(this).attr('href');
$("#dialog-confirm").dialog({
autoOpen: false,
resizable: false,
height: 170,
width: 350,
show: { effect: 'drop', direction: "up" },
modal: true,
draggable: true,
buttons: {
"OK": function () {
$(this).dialog("close");
window.location = url;
}, "Cancel": function () {
$(this).dialog("close");
}
}
});
$("#dialog-confirm").dialog('open');
return false;
});
});
</script>
这是MVC代码;
<div style="text-align: right; font-weight: bold; font-size: larger; color: red;">
<tr>
<td>@Html.ActionLink("Delete", "Your-Action", new { @class = "confirmDialog" })</td>
</tr>
</div>
<div id="dialog-confirm" style="display: none">
<p>
<span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>
Are you sure ?
</p>
</div>
最佳答案
您正在使用的Actionlink重载期望第3个参数作为对象路由而不是html属性。
正确显示操作链接,如下所示:
@Html.ActionLink("Delete", "Your-Action", new{} ,new { @class = "confirmDialog" })
要么
@Html.ActionLink("Delete", "Your-Action", null ,new { @class = "confirmDialog" })
您的其余代码都很好.. !!