JQuery UI对话框按钮 - 在AJAX响应后显示

时间:2009-12-15 06:22:31

标签: jquery jquery-ui

我有以下代码来启动dilog,执行ajax并使用响应填充它。如何修改代码以确保仅在成功执行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 个答案:

答案 0 :(得分:2)

在ajax调用之后

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

答案 1 :(得分:1)

使用Jquery Tools叠加层可能会更好。

它是最干净的解决方案并且维护良好