2013-03-15 35 views
0

我想从JavaScript函数(包括相同的clasic asp或.js文件中)关闭JQuery对话框,但得到错误 错误:无法在初始化之前调用对话框上的方法;试图调用方法'关闭'从Javascript函数手动关闭JQuery对话框 - 错误

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

<!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> 
+0

有id为不派息'mydiv' – 2013-03-15 04:50:58

回答

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