jQuery UI Dialog - Uncaught Error: невозможно вызвать методы в диалоговом окне до инициализации; попытался вызвать метод close

0

У меня есть этот код:

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, не является диалоговой.

Теги:
dialog
jquery-ui-dialog

1 ответ

0
Лучший ответ

Я не вижу, где вы создали свое диалоговое окно, например (например):

$ ( "# 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");
     }
   });

Я предполагаю, что вы еще не создавали экземпляр, или ссылка "эта" неверна? Извините, если я вне игры, так как у меня нет глаз на полную ширину вашего кода.

  • 0
    Я обновил свой пост. Кнопка «Сохранить» не является частью диалога, это кнопка отправки формы. Это потому, что раньше не было диалогов. Вы предлагаете, чтобы я сделал эту кнопку "принадлежащей диалогу"? Я не уверен, но я думаю, что это может вызвать некоторые проблемы, потому что тогда это не будет формой отправки.
  • 0
    хорошо, но что меня смущает, так это: $ ("# registerForm"). dialog ("close"); Вы пытаетесь использовать диалоговый плагин с «this» как «registerForm». Если вы просто хотите добавить обратный вызов в onRegisterPostSucces, я обновил свой ответ.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню