0

ダーティフォームチェックをしています。その際、フォームの値が変更された場合、続行するかどうかを尋ねるプロンプトをユーザーに表示します。はいの場合、クリックしたリンクの URL に移動します。私の問題は、URL を保持できないことです。

$("a").click(function (e) {
        url = $(this).attr('href');
        if(str != $("form").serialize()){
            $('#prompt').show();
            e.preventDefault();
        }
    });

ブートストラップ ダイアログを使用して、フォームが変更されたというメッセージを表示しています。ユーザーがまだページを離れたい場合、転送する必要がある URL を追跡するにはどうすればよいですか。

<div class="modal-footer">  
            <a id="hide" class="btn">Stay on Page</a>
            <a id="navigate" class="btn" href="#">Leave Page</a>  
        </div>

$('#navigate').click(function () {
        console.log(url)
    });

ダイアログを閉じるときに、url の値を保持する方法が必要です。

4

1 に答える 1

0

これはおそらくurlが定義されている場所と関係があります。URL が定義されている場所http://jsfiddle.net/zdgNS/4/に応じて、動作する例と動作しない例の 2 つの例を示す簡単な js フィドルを作成しました。

この JavaScript は、私の例が示すように機能するはずです。

(function() {
     var url;
    $('#link').click(function() {
        url = $(this).attr("href");
        return false;
    });

    $('#button').click(function() {
        console.log(url);
    });
})();

JavaScript 変数のスコープについて詳しく知りたい場合は、次の質問をお読みください: JavaScriptの変数のスコープとは何ですか?

于 2013-04-17T05:17:04.987 に答える