-1

アラート ボックスを表示するウィンドウを閉じる必要がありますが、コードでは毎回 onbeforeunload 関数を使用して自動アラート ボックスを要求します。

<script type="text/javascript">
    window.onbeforeunload = function(evt) {
        var message = 'Are you sure you want to leave?';
        if (typeof evt == 'undefined') {
            evt = window.event;
        }       
        if (evt) {
            evt.returnValue = message;
        }
        return message;
    } 
</script>


<form action="test.php">
    <input name="sample" type="submit" value="submit" />
</form>
4

2 に答える 2

0

これは、あなたformが実際にページを離れているためです....onbeforeunload条件変数で必要な場合にのみ or トリガーを停止する必要があります。

コードの例:

脚本

   var response = true; // true by default

   window.onbeforeunload = function(evt) {
      if(response){
         var message = 'Are you sure you want to leave?';
         if (typeof evt == 'undefined') {
            evt = window.event;
         }       
         if (evt) {
            evt.returnValue = message;
         }
         return message;
      }
   }

   function validateForm(){
      // form validation process...
      response = false;
   }

HTML

<form action="test.php" onsubmit="validateForm()">
   <input name="sample" type="submit" value="submit" />
</form>
于 2013-08-12T08:50:30.303 に答える
0

メッセージを 1 回だけ表示する意思があると思います。グローバル変数は非常に望ましくありませんが、これでうまくいきます。

<script type="text/javascript">
        var alertWasShown = false;
        window.onbeforeunload = function(evt) {
            if (alertWasShown)
                return;
            var message = 'Are you sure you want to leave?';
            if (typeof evt == 'undefined') {
                evt = window.event;
            }       
            if (evt) {
                evt.returnValue = message;
            }
            alertWasShown = true;
            return message;
        } 
    </script>
于 2013-08-12T07:45:15.577 に答える