Изменить текст кнопки диалога jQueryUI в открытом методе

После открытия диалогового окна jQueryUI я хотел бы выполнить запрос GET и на основе ответа изменить текст кнопки. После нескольких часов борьбы я наконец получил следующую работу. Это действительно лучшее/единственное? Спасибо

$("#dialog").dialog({
    open        : function() {
        var dialog=$(this);
        $.get('ajax.php', function (data) {
            var buttons=dialog.dialog( "option", "buttons" );
            buttons[1].text=(data==1)?"CANCEL":"CLOSE";
            var buttons=dialog.dialog( "option", "buttons" ,buttons);
        });
    },
    buttons     : [
        {
            text    : 'SAVE',
            click    : function() {}
        },
        {
            text    : 'CANCEL',
            click    : function() {}
        }
    ]    
});

person user1032531    schedule 29.11.2012    source источник
comment
почему вы сначала не вызываете ajax.php и не открываете диалог после ответа?   -  person silly    schedule 29.11.2012
comment
@глупый. Что бы вы изменили после вызова ajax? Как насчет того, как я копирую весь объект кнопки и повторно инициализирую диалог с ним?   -  person user1032531    schedule 29.11.2012


Ответы (1)


Вы можете изменить текст кнопки следующим образом...

приведенное ниже без ajax

function setbutton(button1, button2) {
var btns = {};
btns[button1] = function() {
    //your function
   $( this ).dialog( "close" );
};
btns[button2] = function() {
    // Do nothing
    //your function
    $( this ).dialog( "close" );
};

document.getElementById('dialogshow').innerHTML = "<div>open with given button text</div>";


$( "#dialogshow" ).dialog({
    autoOpen: true,
    width: 450,
    height: 200,
    modal: true,
    position: 'center',
    modal: true,
    buttons: btns
});
}
$('.test').click(function() {
setbutton('start', 'End');//in here button name you want..
});

Посмотреть живую демонстрацию

person Dineshkani    schedule 29.11.2012
comment
Спасибо Динеш. Интересный подход. Это кажется чище, чем мой подход. - person user1032531; 29.11.2012