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

时间:2014-04-20 18:57:57

标签: javascript jquery jquery-ui dialog jquery-ui-dialog

我有这段代码:

function onRegisterPostSucces(data){
    $("#registerForm").dialog("close");
    $("#registerDialog").text(data);
    $("#registerDialog").dialog( "open" );

我想要做的是从对话框表单发送注册数据,并且在成功时我想关闭注册对话框并打开新对话框,其中包含有关创建新帐户的信息。 但是与对话框一致("关闭")我收到了这个错误:

Uncaught Error: cannot call methods on dialog prior to initialization; attempted to call method 'close' 

我尝试了以下解决方案:

$("#registerForm").dialog().dialog("close");

$("#registerForm").hide

但两者都没有关闭对话框 - 只隐藏对话框(例如输入),对话框仍处于打开状态。我做错了什么?提前谢谢。

更新初始化:

$("#registerDialog").dialog({autoOpen: false});
 $("#registerBar").dialog({autoOpen: false,
            modal: true,
            width: 400, height: 600, 
            buttons: {"Zamknij": function(){
                    $(this).dialog("close");
            }}});
(...)

在#registerBar中我有#registerForm:

$("#registerForm").submit(sendRegisterFormData);
function sendRegisterFormData(e){
    var contextPath='<%=request.getContextPath()%>';
    $.post(contextPath+"/login/AddUser", $("#registerForm").serialize(),
        onRegisterPostSucces);
    e.preventDefault();
}

onRegisterPostSuccess我想关闭对话框。触发POST的按钮不是&#34;对话框拥有的&#34;按钮。

1 个答案:

答案 0 :(得分:0)

我没有看到您实例化对话框的位置,如此(例如):

$(&#34;#registerForm&#34)的对话框。(&#34;靠近&#34);

function onRegisterPostSucces(data){
    $("#registerForm").hide();
    $("#registerBar").dialog('close');
    $("#registerDialog").text(data);
    $("#registerDialog").dialog( "open" );

//这只是一个例子,你可能不需要这个。

 $("#registerForm").dialog({
     autoOpen: false,
     height: 300,
     width: 300,
     modal: true,
     // etc.. other things
     close: function() {
         $(this).dialog("close");
     }
   });

我的猜测是你还没有实例化它或者这个&#39;这个&#39;参考不正确?对不起,如果我是offbase,因为我没有全神贯注于您的代码。