0

jqueryモーダルダイアログで立ち往生しました。私のモーダルショーは、ボタンを2回クリックすると、ページのマークアップが台無しになります。スタックオーバーフローを含む投稿はありません

そしてこれ

しかし、私の問題は両方に一致しません。そのため、質問に投票しないでください。

私はモーダルを表示するために次のコードを使用しています

<script type="text/javascript">

        function overlayclickclose() {
            if (closedialog) {
                jQuery('#mydialog').dialog('close');
                             }
            closedialog = 1;
                                    }

            jQuery('#mydialog').dialog({
            bgiframe: true,
            autoOpen: false,
            modal: true,
            width: 900,
            height: 400,
            resizable: false,
            open: function() { closedialog = 1; jQuery(document).bind('click', overlayclickclose); },
            focus: function() { closedialog = 1; },
            close: function() { jQuery(document).unbind('click'); }
            });
            </script> 

これがポップアップとして表示される私のdivです

<div id="mydialog"><NL:TemplatePicker ID="TemplatePicker1" Runat="server"></NL:TemplatePicker></div>

そして、私はこのように背後にあるasp.netコードでそれを呼び出すことによってボタンのクリックでモーダルを呼び出しています

protected void btnChooseTemplate_Click(object sender, EventArgs e)
    {
        ScriptManager.RegisterClientScriptBlock(this.Page, Page.GetType(), "change", "jQuery('#mydialog').dialog('open');closedialog = 1;jQuery('#mydialog').parent().appendTo(jQuery('form:aspnetForm'));", true);
    }

私のページはajaxupdatepanelを使用しています。

どんな助けも考慮されます。問題をもっとよく知るために何か必要なことがあれば、私に知らせてください。

ありがとう

4

1 に答える 1

2

@Devjosh:btnChooseTemplateクリックで開いているダイアログを登録しているようです。これは、最初のクリックが完了するまで、開いているスクリプトが登録されないことを意味します。クライアントスクリプトブロックの登録をページ読み込み機能に移動して、ページが読み込まれるたびに登録され、毎回最初のクリックの準備ができるようにしてください。

于 2011-05-10T14:28:56.320 に答える