0

我想从 JavaScript 函数中关闭一个 JQuery 对话框(包括在相同的 clasic asp 或 .js 文件中),但出现错误错误:在初始化之前无法调用对话框上的方法;试图调用方法“关闭”

这是由对话框加载并显示的文件的代码,如何使用外部或内部函数调用关闭打开的对话框,如果想再次打开它,如何不出现初始化错误?

<!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 回答