Я думаю, что вы не можете изменить существующее диалоговое окно таким образом. Чтобы выполнить задачу, с которой вы столкнулись, просто включите кнопку в первый вызов, но сразу же скройте ее. Как только запрос ajax закончится, просто раскройте кнопку. Для правильного визуального восприятия просто используйте скрыть / показать всю панель кнопок:
var $dialog = jQuery('<div>Wait</div>') .html('Sending your message...<img src="../images/AjaxWait.gif" style="float: left; padding-left: 50px;"/>')
.dialog({
modal: true,
width: 160,
autoOpen: false,
resizable: false,
draggable: false,
buttons: { "Ok": function() { jQuery(this).dialog('close'); }
})
;
// hide buttons
$dialog.children('.ui-dialog-buttonpane').hide();
В обработчике события для завершения ajax просто выполните
// unhide buttons
$dialog.children('.ui-dialog-buttonpane').show();
При желании вы можете предоставить смягчающий идентификатор для анимации процесса отображения.