我在 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">×</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/