我有以下代码,它基本上是一个导致提交发生的复选框。 随着DB的任务被删除,需要有一个框出现并说“你确定”或类似,以确认删除。
<input type="checkbox"
onclick="location.href='@Url.Action("Complete", "Tasks",
new { TaskID = item.TaskID })'" />
这使用Razor语法。
答案 0 :(得分:9)
您可以使用confirm方法:
<input type="checkbox" onclick="if (confirm('Are you sure?')) { window.location.href = '@Url.Action("Complete", "Tasks", new { TaskID = item.TaskID })'; }" />
或者以更加不显眼的方式使用jquery:
<input type="checkbox" id="complete" name="complete" data-url="@Url.Action("Complete", "Tasks", new { TaskID = item.TaskID })" />
然后在单独的javascript文件中:
$(function() {
$('#complete').click(function() {
if (confirm('Are you sure?')) {
window.location.href = $(this).data('url');
}
});
});
此外,我强烈建议您在控制器操作上使用另一个动词而不是GET来修改服务器上的状态,例如将任务标记为已完成。 PUT,POST和DELETE都是不错的选择。在您修改现有项目的情况下,POST动词似乎最自然。
答案 1 :(得分:4)
您可以拦截表单提交事件并要求确认。基于该返回true或false以允许提交。 类似于
$("#form").submit(function (event) {
if ( confirm("Are you sure you want to delete"))
return true;
else{
event.preventDefault();
return false;
}
});
答案 2 :(得分:1)
可以通过这种方式完成
<input name="button" type="submit" value="Delete" class="btn btn-danger cancel" onclick="return confirm('Are you sure?')" />