0

我在父页面上有一个链接,它打开一个加载文件的对话框。asp 具有带有超链接的表单和数据库结果集。当单击一个超链接(单独的 .js 文件中的 JavaScript 函数)时,它会将一些信息更新到父页面并尝试关闭对话框。

我有两个问题。
1.$("#myDiv").dialog("close");从 .js 内部使用时

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

它在使用关闭函数时出现初始化错误。
2.打开第二次对话框的问题,仍然初始化错误。

请让我知道我该怎么做?谢谢QF

4

4 回答 4

1

使用上下文参数:

$("#myDiv",parent.document).dialog("close");
于 2013-03-15T03:32:11.200 回答
1

问题是由于default2.asp作为动态内容加载到现有页面,它不应该包含所有 html 元素,如html,bodyhead

如果你删除它们并且脚本和 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 回答
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')没有以某种方式获得正确的元素。

我猜它可能是#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 回答