0

親ページに、ファイルをロードするダイアログを開くリンクがあります.aspには、ハイパーリンクを含むフォームとデータベースの結果セットがあります。1 つのハイパーリンク (別の .js ファイルの JavaScript 関数) をクリックすると、一部の情報が親ページに更新され、ダイアログを閉じようとしました。

2 つの問題があります。
1. $("#myDiv").dialog("close");.js内から使用する場合

function UpdateProdInfo() {
    // some code here to update parent and it works
$("#myDiv").dialog("close"); }

close 関数を使用すると初期化エラーが発生します。
2. 2 回目のダイアログを開く際の問題、まだ初期化エラー。

どうすればこれを行うことができますか教えてください。ありがとうQF

4

4 に答える 4

1

問題は、が動的コンテンツとして既存のページに読み込まれるため、などdefault2.aspのすべての html 要素を含むべきではないことです。htmlbodyhead

それらを削除し、スクリプトと css に jquery.js と jqueryui.css と js などを含めると、正常に動作します

デモ:問題
デモ:解決策

Defaut2.asp は次のようになります。

This is Default3.asp file
<br><br>

Something
<a href="Javascript:CloseMe();">Close Me</a>

<br><br>
<form ID=Form2 >
  Name: <input type="text" name="Name"><br>
    Address: <input type="text" name="address"><br><br>
    <input type="submit" value="Submit">
</form>    

<script type="text/javascript">
  $(function() {
    $('#Form2').submit(function(evt) {
            evt.preventDefault();
            $.ajax({
                url: "Default2.asp", 
                type: 'POST',
                data: $(this).serialize(),
                success: function(result) {
                    $('#mydiv').html(result);
                }
            });
        });

        var MyDlg = $( "#mydiv" );

        $(".ui-widget-overlay").click (function () {
            MyDlg.dialog( "close" );
        });
    });

    function CloseMe() {
        $( "#mydiv" ).dialog("close");
    }

</script>
于 2013-03-20T03:20:54.327 に答える
1

コンテキスト パラメータを使用します。

$("#myDiv",parent.document).dialog("close");
于 2013-03-15T03:32:11.200 に答える
0

電話してみる

parent.$("#myDiv").dialog("close");

ダイアログが親ページで定義されているためです。

于 2013-03-15T03:28:32.713 に答える
0

Uncaught Error: cannot call methods on dialog prior to initialization; attempted to call method 'close'まだ開いていないダイアログを閉じようとすると、初期化エラーが発生します。

これは次のいずれかです。

  1. dialog('close')ダイアログが表示される場合は除外できます)または
  2. セレクター$('#myDiv')が何らかの形で正しい要素を取得していません。

おそらくNo.2だと思います。私はそれをデバッグしようとします...

function UpdateProdInfo() {
    // some code here to update parent and it works
    console.dir($('#myDiv'));  //Does it return the correct element?
    //$("#myDiv").dialog("close"); 
}

...正しい要素を選択しているかどうかを確認します。

于 2013-03-15T03:38:35.140 に答える