在取消按钮上确认对话框发布?

时间:2017-05-10 14:47:28

标签: javascript asp.net-mvc

我正在使用以下<a>标记来显示它所做的简单确认。但是,当我单击“取消”按钮时,它仍然执行post方法。根据我的理解,如果单击“取消”按钮,则在确认前面return会导致表单不发布。

<a href="#" 
   data-potr-action="delete"
   data-potr-val="@item.RID"
   onclick="return confirm('Are you sure you want to delete this Request?');"
   class="btn btn-default btn-sm">
    <i class="glyphicon glyphicon-trash"></i> Delete
</a>

我在页面末尾有这段代码,但我认为它与此问题无关。在“确认”对话框中选择“取消”时,我认为不会触发点击事件。

这只是获取data-action和data-value中的值,并将它们存储到隐藏字段中。这是通过点击完成的,它不应该到达。

@section scripts {
    <script>
    $(document).ready(function () {
      // Hook events on buttons and anchors
      buildClickEvents();
    });

    // Hook events on buttons and anchors
    function buildClickEvents() {
      $("[data-potr-action]").on("click", function (e) {
        e.preventDefault();

        $("#EventCommand").val(
            $(this).data("potr-action"));

        $("#EventArgument").val(
            $(this).attr("data-potr-val"));

        $("form").submit();
      });
    }
    </script>
}

2 个答案:

答案 0 :(得分:0)

要回答您的问题,请勿确认是否阻止表单发布。按下&#34; OK&#34;它返回true或者如果按下则为假&#34;取消&#34;按钮。请参阅W3c

你能做什么如下:

function buildClickEvents() {
  $("[data-potr-action]").on("click", function (e) {
    e.preventDefault();
    var result = confirm('Are you sure you want to delete this Request?');
    if(result == false){
       return;
    }
    $("#EventCommand").val(
        $(this).data("potr-action"));

    $("#EventArgument").val(
        $(this).attr("data-potr-val"));

    $("form").submit();
  });
}

从标记中删除以下内容:

onclick="return confirm('Are you sure you want to delete this Request?');"

答案 1 :(得分:0)

  $("[data-potr-action]").on("click", function (e) {
    if(confirm("your message")){
        $("#EventCommand").val(
            $(this).data("potr-action"));

        $("#EventArgument").val(
            $(this).attr("data-potr-val"));

        $("form").submit();
    }

    e.preventDefault();


  });