0

次のように、URLにクラスのモーダルリンクを適用しました。

<a href="form.php" class="modal-link"></a>

これにより、次のコードを使用して、モーダル (ポップアップ) ウィンドウで私のform.phpが開きます。

<script>
$(document).ready(function()
{
    $('.modal-link').click(function(event)
    {
        // Declare vars
        var url, openModal;

        // Prevent link opening
        event.preventDefault();

        // Store url
        url = this.href;

        // Function to open modal
        openModal = function()
        {
            $.modal({
                title: 'My title',
                maxWidth: 500,
                url: url,
                loadingMessage: 'Loading...',
                buttons: {
                    'Close': function(win) { win.closeModal(); },
                    'Open new modal': openModal
                }

            });
        };

        // Open first modal
        openModal();
    });
});
</script>

このモーダル ウィンドウには、「新しいモーダルを開く」というボタンがあります。このボタンは、最初のモーダル ウィンドウがまだ表示されている間に、同じform.phpファイルを含む新しいモーダル ウィンドウを開きます。

最初のモーダル ウィンドウでフォームを送信すると、2 つのモーダル (同じ form.php を含む) が互いに衝突しているように見えるため、機能しません。

モーダル ウィンドウが 1 つしか開いていない場合、フォームの送信は機能します。

2番目のモーダルウィンドウと衝突したり干渉したりせずに最初のモーダルウィンドウでフォームを送信できるように、各モーダルを一意にする方法はありますか?

2 つのモーダル ウィンドウを区別する方法はありますか?

4

1 に答える 1

0

何を説明できます$.modalか?検索してみましたが、それを明確にするものは見つかりませんでした。使用しているプラ​​グインですか?

また、フォームの送信によってページが読み込まれるのか、それともajaxベースなのかを明確にできますか?ajaxベースの場合、一部のイベントまたは変数が衝突している可能性があります。

Javascriptをデバッグしているときは、通常、コンソールをChromeで開いたままにします。これにより、一般的にデバッグが容易になります。

于 2012-09-19T15:10:22.113 に答える