0

この 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>
4

2 に答える 2

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;
    }
}

私の例も参照してください。

于 2012-04-02T06:10:28.470 に答える
1

まず、ajax 呼び出しを r===true のセクションにのみ配置する必要があります。ユーザーが [キャンセル] をクリックした場合、サーバーにデータを送信しません。

第 2 に、ユーザーが既に実行したアクション (=ajax 呼び出し) を終了したい場合 (つまり、ユーザーが [OK] ボタンをクリックし、データをサーバーに投稿するために ajax を呼び出した場合) は難しくなります。 「ロールバック」を行うサーバー側のコードが必要になります。サーバーに到達する前にデータを「キャッチ」することはできないため、ここでのオプションは、ロールバックを実行してクライアントからステータスを確認できるようにすることです。

于 2012-04-02T05:59:17.787 に答える