错误:在初始化之前无法调用对话框上的方法;试图调用方法'打开'

时间:2013-02-25 03:40:17

标签: jquery-ui jquery

只是一个小小的序言...我对jQuery相当新,所以如果出现错误或多余的内容,请随时提供任何有用的建议。

现在问题。我有两个模式,从页面上的2个单独的链接启动。

  • 第一种模式是相当无问题的。这是一个简单的表单,回发到同一页面。如果您想知道“close:”部分中的项目是什么,它们是我希望在关闭对话框时清除值的表单字段。
  • 一旦我添加了第二个,我就遇到了问题。此模态将coldfusion页面调用为模式以显示图片。打开第二个问题后会出现问题。我无法从“关闭”按钮关闭第二个模态。我收到以下错误。

错误:在初始化之前无法调用对话框上的方法;试图调用方法'关闭'

我必须从模态右上角的“x”处关闭它。关闭它后,我在尝试打开第一个时出错。

错误:在初始化之前无法调用对话框上的方法;试图调用方法'打开'

以下是代码。

$(document).ready(function() {
    $(".dig").click(function() {
        //based on which we click, get the current values
        var cItemName = $("#checklistItemName").attr( "title");
        var c2id = $("#check2id").attr( "title");
        $("#ItemName").html(cItemName);
        $("#ItemID").html(c2id);
        $("#objCheckItemName").val(cItemName);        
        $("#objCheck2ID").val(c2id);
        console.log(cItemName);
        console.log(c2id);
    }); 
    $( "#image-form" ).dialog({
        autoOpen: false,
        height: 450,
        width: 650,
        modal: true,
        buttons: {
            "Submit": function() {
                $('#mForm').submit();
                return true;
            },
            Cancel: function() {
                $( this ).dialog( "close" );
            }
        },
        close: function() {
            $('#defaultSectionName')
                .val('');
            $('#defaultSectionDesc_hidden')
                .val('');
            $('#Photo')
                .val('');
            $('#objCheck2ID')
                .val('');
            $('#Check21')
                .val('');
        },
        zIndex: 500
    });

下一段代码是我认为问题正在发生的地方。

    $( "#image_trigger" )
        .click(function() {
        $( "#image-form" ).dialog( "open" );
    });
    var dlg=$('#register').dialog({
        title: 'Case Pictures',
        resizable: true,
        autoOpen:false,
        modal: true,
        hide: 'fade',
        width:650,
        height:450,
        buttons: {
            close: function() {
                $( this ).dialog( "close" );
            }
        },
        zIndex: 500
    });
    $('#reg_link').click(function(e) {
        e.preventDefault();
        var linkurl=('assets/includes/modalPictures.cfm' + '?'
            + 'id=' + $("#objCheck2ID").val()
    );
    dlg.load(linkurl, function(){
        dlg.dialog('open');
    });
});

jQuery UI:1.10.1

jQuery:1.9.1

服务器端:Coldfusion

HTML非常广泛。如果您需要查看它的任何部分,请告诉我。谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

大写?

Close: function() {

答案 1 :(得分:0)

您必须在调用open函数之前初始化jquery对话框。

<script type="text/javascript">
    $(document).ready(function () {
         initializeDialog();
    });
</script>

并更改您的js文件,以使对话框代码包含在initializeDialog()函数中。

function initializeDialog(){
    
    $("#your-dialog-id").dialog({
        autoOpen: false,
        buttons: {
            "Cancel": function() {
                $(this).dialog("close");
            }
        },
        modal: true,
        resizable: false,
        width: 600px,
        height: 400px
    });
}

感谢@bpjoshi