2013-06-20 2 views
1

Я изо всех сил пытаюсь найти способ открыть диалоговое окно после успешного события ajax. На данный момент я использую jquery .html для вставки некоторого html в div, но то, что я хотел бы сделать, это создать диалоговое окно с html вместо использования стандартного имени div. Причина этого в том, что значения меняются, поэтому стандартный ответ не будет выполняться. Возможно ли это?Открыть диалог при успешном вызове ajax

Дива в моем примере кода; # dialog-message, просто пример. Благодаря

JQuery + диалог код

//Begin function to submit report form 

$(function() { 
    $("#frmreport").submit(function() { 

     var send = $(this).serialize(); 

     $.ajax({ 
      type: "POST", 
      url: "/sample/admin/frm10010.php", 
      data: send, 
      dataType: "json", 
      success: function (msg) { 
       $("#confirm_department").hide(); 
       $(function() { 
        $("#dialog-message").dialog({ 
         modal: true, 
         buttons: { 
          Ok: function() { 
           $(this).dialog("close"); 
          } 
         } 
        }); 
       }); 
       //alert('You have succesfully submitted your ' 
       // + msg.dept + ' report. Thank you.'); 
       //$("#report_result").html("You have succesfully 
       // submitted your report. Thank you."+"<br /><br />"); 
       $("#formShow").hide(); 
       $("#formImage .col_1 li").show(); 
       $("#frmreport").get(0).reset(); 
      } 
     }); 
     return false; 
    }); 
}); 

// End function to submit report form 
+0

удалить '$ (function() {...})' вокруг 'dialog' init для стартеров :) – krishgopinath

+0

Да, просто замените' '# dialog-message" 'на строку html, которая представляет div. –

+0

@passionateCoder Сделано. Большое спасибо – user1532468

ответ

0

Нет необходимости обернуть диалог инициализации в $(function() {...}); функции. Это придает слушатель ready события к документу, поэтому не требуется, так как у вас есть все, что уже завернутое: http://api.jquery.com/jQuery/#jQuery3

Попробуй заменить success обратный вызов с:

function (msg) { 
    $("#confirm_department").hide(); 
    $("#dialog-message").dialog({ 
     modal: true, 
     buttons: { 
      Ok: function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
    //alert('You have succesfully submitted your ' + msg.dept + ' report. Thank you.'); 
    //$("#report_result").html("You have succesfully submitted your report. Thank you."+"<br /><br />"); 
    $("#formShow").hide(); 
    $("#formImage .col_1 li").show(); 
    $("#frmreport").get(0).reset(); 
} 

Кроме того, dialog() является частью jQueryUI, не базовую библиотеку jQuery. Для этого вам нужно будет импортировать обе библиотеки.

+0

Спасибо за ввод. Однако я искал удаление диалогового сообщения # и вместо него использовал .html. – user1532468