У меня есть этот код:
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
Но оба не закрыли диалог - только скрыть то, что было диалогом (например, входы), диалог все еще был открыт. Что я делаю неправильно? Заранее спасибо.
Инициализация UPDATE:
$("#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, не является диалоговой.
Я не вижу, где вы создали свое диалоговое окно, например (например):
$ ( "# RegisterForm") диалог ( "закрыть").
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");
}
});
Я предполагаю, что вы еще не создавали экземпляр, или ссылка "эта" неверна? Извините, если я вне игры, так как у меня нет глаз на полную ширину вашего кода.