我有这段代码:
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;按钮。
答案 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,因为我没有全神贯注于您的代码。