Инициировать диалоговое окно пользовательского интерфейса Jquery с обратным вызовом успеха плагина формы Jquery

Я использую проверку формы на стороне сервера, чтобы опубликовать ответ (в формате html) на форму, отправленную с использованием Ajax, но более конкретно с http://jquery.malsup.com/form/#getting-started.

Я пытался:

<script type="text/javascript">
$(document).ready(function() {
 var $dialog = $('<div id="dialog"></div>')
        .html('This dialog will show every time!')
        .dialog({
            autoOpen: false,
            title: 'Basic Dialog'
        });
    $('#bookingForm').ajaxForm({
        success: function() { 
            $dialog.dialog('open');
            // prevent the default action, e.g., following a link
            return false;
        } 
    });
});
</script>

Отправка Ajax срабатывает, и сервер возвращает ответ, но не диалоговое окно jquery.

Удаление

autoOpen: false,

показывает диалог, поэтому я знаю, что эта часть скрипта работает.

Я также протестировал обратный вызов с предупреждением, и он также работает.

Ваша помощь приветствуется.

Тим


person Tim    schedule 11.12.2011    source источник
comment
Ошибки на странице? Вы уверены, что jQueryUI загружается правильно?   -  person Andrew Whitaker    schedule 12.12.2011
comment
Нет ошибок в инструментах разработчика Firebug или Chrome. Если я запускаю $dialog.dialog('open'); вернуть ложь; в обработчике событий функции нажатия кнопки это работает. Или еще проще просто удалите autoOpen: false и он сразу загрузится.   -  person Tim    schedule 12.12.2011
comment
Можете ли вы показать, как выполняется отправка? это вызывает перезагрузку страницы?   -  person smendola    schedule 13.12.2011
comment
Извините, пожалуйста, не обращайте внимания на мой последний комментарий.   -  person smendola    schedule 13.12.2011
comment
Вызывается ли обратный вызов успеха? Вы пытались добавить console.log или предупреждение перед открытием диалогового окна?   -  person Didier Ghys    schedule 13.12.2011
comment
Привет. Да, обратный вызов успеха работает. Я только что протестировал с предупреждением («успех»), и оно сработало... У меня такое чувство, что я что-то упустил в диалоговом окне пользовательского интерфейса.   -  person Tim    schedule 14.12.2011


Ответы (1)


это о размахе? $dialog недоступен, потому что находится внутри функции

пытаться

 var $dialog;
  $(document).ready(function() {
      $dialog = $('<div id="dialog"></div>')
person conners    schedule 18.06.2012