Промяна на текста на бутона на диалоговия прозорец на 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