ASP.NET MVC3:提交前的确认框

时间:2011-11-21 10:33:19

标签: c# asp.net forms asp.net-mvc-3

我有以下代码,它基本上是一个导致提交发生的复选框。 随着DB的任务被删除,需要有一个框出现并说“你确定”或类似,以确认删除。

<input type="checkbox" 
       onclick="location.href='@Url.Action("Complete", "Tasks", 
                                           new { TaskID = item.TaskID })'" />

这使用Razor语法。

3 个答案:

答案 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?')" />