Jquery AJAX 提交表单,即使 confirm() 方法为 false

Jquery AJAX submits the form even if confirm() method is false

<div class="report" data-id="55"></div>

<script>
$('.report').click(function() {
    var id = $(this).data("id");
    confirm("do you really want to report this post?");

    $.ajax({
        url: 'forumreport.php',
        type: 'GET',
        data: 'id='+id,
        success: function(){
            alert("reported!!");
        },
    });
})
</script>

如果用户在确认表单上单击取消,我想停止 $.ajax() 方法。但是 ajax 仍在将 id 发送到 .php 页面。我该怎么办?

confirm method returns 一个boolean表示提示是否被确认,因此你可以简单的将结果boolean保存在一个变量中,并在执行AJAX之前检查它是否为真请求。

$('.report').click(function() {
    var id = $(this).data("id");
    var confirmed = confirm("do you really want to report this post?");

    if (confirmed) {
      $.ajax({
          url: 'forumreport.php',
          type: 'GET',
          data: 'id='+id,
          success: function(){
              alert("reported!!");
          },
      });
    }
});

Confirm 函数 returns 一个布尔值,指示是否选择了确定或取消(true 表示确定)
https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm

检查 confirm 函数返回的结果:

<script>
$('.report').click(function() {
    var id = $(this).data("id");
    if(confirm("do you really want to report this post?")){
       $.ajax({
           url: 'forumreport.php',
           type: 'GET',
           data: 'id='+id,
           success: function(){
            alert("reported!!");
           },
       });
    };

})
</script>