2009-12-15 63 views
1

我有以下代碼來啓動一個dilog,執行ajax並用響應填充它。如何修改代碼以確保只有在成功完成ajax響應後才顯示「確定」按鈕?JQuery UI對話框按鈕 - 在AJAX響應後顯示

感謝

function saveChangesDialog(btnToClick,formToPost,formAction,dialogtitleText) 
    { 
    $(document).ready(function() { 
      // dialog prepare function 
        $('#generic_dialog').dialog({ 
         autoOpen: false, 
         width: 400, 
         modal: true, 
         bgiframe: true, 
         title: dialogtitleText, 
         closeOnEscape: false, 
         open: function(event, ui) 
         { 
          $(".ui-dialog-titlebar-close").hide(); 
         }, 
         resizable: false, 
          buttons: { 
            Ok: function() { 
              $(this).dialog('close'); 
            } 
          } 
        }); 

      // dialog content polling 
      $.fetch_dialog_content = function() { 
       $('#generic_dialog').dialog('open'); 
       $.ajax({ 
        type: 'POST', 
        url: formAction, 
        data: $("#"+ formToPost).serialize(), 
        cache: false, 
        dataType: "html", 
        success: function(html_input){      
         $('#dialogText-genericdialog').html(html_input);      
        } 
       }); 
      } 
      // "click" event registration 
      $('#'+btnToClick).click(function(){ 
       $.fetch_dialog_content(); 
      }); 
    }); 
    } 

回答

2

Ajax調用後

$('#generic_dialog').dialog('option','buttons',{ 
    'OK': function(){ $(this).dialog('close');} 
}); 
1

你可能會使用jQuery工具覆蓋會更好。

其最清潔的解決方案和良好的維護