0

JavaScript 関数 (同じクラシック asp または .js ファイルに含まれる) から JQuery ダイアログを閉じたいのですが、エラー Error: cannot call methods on dialog before initialization; が発生します。メソッド「close」を呼び出そうとしました

これは、ダイアログによってロードされたファイルのコードであり、外部または内部関数呼び出しを使用して開いているダイアログを閉じる方法と、再度開きたい場合に初期化エラーを発生させない方法を示しています。

<!DOCTYPE html>
<html>
<head>
    <title>Default2.asp</title>
<script src="/JQuery/jquery-1.9.1.js"></script>
<script src="/JQuery/jquery-ui.js"></script>    
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />


<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);
            }
        });
    });
});

function closeThis()
{
 // $("#mydiv").hide();
  $("#mydiv").dialog("close");
}
</script>

</head>
<body>
This is Default2.asp file
<a href="JavaScript:closeThis();">Close This Dialog</a>
<br><br>

<% 
Dim Name, Address
Name = Request.form("Name")
Address = Request.form("address")

Response.write("The Name was " & Name & " and Address was " & Address )
%>

<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">
This is just a test
</form>

</body>
</html>
4

1 に答える 1

0

これを試して:

$(function() {
    $('#Form2').submit(function(evt) {
        evt.preventDefault();
        $.ajax({
            url: "Default2.asp", 
            type: 'POST',
            data: $(this).serialize(),
            success: function(result) {
                $('#mydiv').dialog("open").html(result);//<-- First open it here
            }
        });
    });
});

function closeThis()
{
    if($("#mydiv").dialog('isOpen'))
        $("#mydiv").dialog("close");
}

ドキュメントを読むhttp://api.jqueryui.com/dialog/#method-isOpen

于 2013-03-15T04:46:33.227 に答える