我们使用此javascript警告用户,现在我想将此功能添加到我的html表单,该表单使用post方法将数据发送到我的php表单处理页面。
现在我想要的是终止操作,如果用户按下取消按钮,这意味着不应该发送使用post方法发送的所有数据,并且该人将无法处理该表单,直到和除非他/她单击OK
按钮。那有可能吗?或者只是一些愚蠢的问题?
<html>
<head>
<script type="text/javascript">
function show_confirm()
{
var r=confirm("Press a button!");
if (r==true)
{
alert("You pressed OK!");
}
else
{
alert("You pressed Cancel!");
}
}
</script>
</head>
<body>
<input type="button" onclick="show_confirm()" value="Show a confirm box" />
</body>
</html>
答案 0 :(得分:1)
首先,你应该只将你的ajax调用放在r === true的部分 然后,如果单击“取消”,则不会向服务器发送任何数据。
其次,如果你想终止一个用户已经做过的动作(= ajax call)(意思是,她点击OK按钮并调用ajax将数据发布到你的服务器),它将是更难,因为你需要一个服务器端代码来执行'回滚'。您无法在数据到达服务器之前“捕获”数据,因此您的选择是能够执行回滚,然后从客户端检查状态。
答案 1 :(得分:1)
在表单提交时调用confirm
,而不是单击按钮,然后将按钮更改为提交按钮:
<form onsubmit="return show_confirm();">
<input type="text" name="test" value="test"><br>
<input type="submit" value="Show a confirm box">
</form>
如果点击return false;
,请添加cancel
:
function show_confirm() {
var r=confirm("Press a button!");
if (r===true) {
alert("You pressed OK!");
} else {
alert("You pressed Cancel!");
return false;
}
}
另见my example。