javascript - 如果我从之前的 js 确认脚本中单击 "cancel",有没有办法阻止表单提交?

标签 javascript php

我在 Bootstrap 中使用了模态类,通过 POST 操作从表中删除一条记录,但它没有任何确认,所以我尝试使用此确认 JavaScript。

确认有效。现在的问题是,即使我从js确认对话框中选择“取消”,它仍然删除或路由到delete.php文件(删除记录):o

问题:如果我从js确认脚本中单击“取消”,有没有办法阻止表单提交?谢谢!

<!-- script and modal FROM THE HTML page users.php -->

<script>
function iconfirm() {
      var r = confirm("Do you really want to delete this user? Press ok to confirm.");
      if (r==true)
        {
        window.location="postDeleteUser.php";
    return true;
    }
       else
    {
    alert("You pressed Cancel!");
    window.location="users.php"
    }
 }
</script>

<div id="modDeleteUser" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modAddUser">
  <div class="modal-dialog bs-example-modal-sm">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h3 id="modAddUser">Delete User</h3>
      </div>
      <div class="modal-body">
        <form class="" action="postDeleteUser.php" method="post">
          <div class="control-group">
            <label class="control-label" for="inputID">Input the User ID of the user you are deleting:</label>
            <div class="controls">
              <input type="text" class="input-small" id="inputID" placeholder="- ID No. -" name="txtuserid">
            </div>
          </div>
          <!--<button type="submit">OK</button>-->
          <button onclick="iconfirm()" type="submit">OK</button>
          <!--======================-->

        </form>
      </div>
      <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
      </div>
    </div>
  </div>
</div>

<!-- FROM THE HTML page end -->




//=================== Delete.php start =========== //


<?php
$db_name="homeis";
$tbl_name="users";
$user_id=$_POST["txtuserid"];

include ("connect.php");
$deleteQuery= "DELETE FROM $tbl_name WHERE id='$user_id'";
$result = mysqli_query($db,$deleteQuery);

if ($db->query($deleteQuery) === true) {
  echo "<script>alert('Data deleted!');window.location.href='users.php'</script>";
  }
else {
  echo "<script>alert('Unable to delete. Please try again.');window.location.href='users.php'</script>" . $conn->error;
  }

$db->close();

?>

//=================== Delete.php end =========== //

最佳答案

如果您不想提交该内容,则需要返回 false ..

此处添加“返回”

<button onclick="return iconfirm()" type="submit">OK</button>

然后在函数中返回一些内容。如果你返回 true 它将提交。如果你返回 false,你的计算机可能会爆炸或者尝试一下。

function iconfirm() {
      var r = confirm("Do you really want to delete this user? Press ok to confirm.");
      if (r==true)
        {
        window.location="postDeleteUser.php";
    return true;
    }
       else
    {
    alert("You pressed Cancel!");
    window.location="users.php"
    // return false here
    return false;
    }
 }

但是,可能更容易......

<button onclick="return confirm('are you sure about whatever it is youre doing?')" type="submit">OK</button>

关于javascript - 如果我从之前的 js 确认脚本中单击 "cancel",有没有办法阻止表单提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34522070/

相关文章:

php - 具有类别和子类别的导航栏/菜单

Javascript 或 HTML/CSS float div 问题,可能是其他问题

php - 具有不同str的表迭代

javascript - Twitter Bootstrap 安装问题

页面收到 AJAX 响应后 JavaScript 不再执行

javascript - 函数参数未正确添加到 JSON 对象

php - 警告 : mysqli_query(): Couldn't fetch mysqli

php - 通过 PHP 测试 Comet 服务器功能的测试套件

php - Symfony2:调用未定义的方法 Doctrine\ORM\QueryBuilder::getResult()

php - 在MySQL数据库中插入大量记录会占用内存