2012-11-29 4 views
2

jQueryUI 대화 상자를 열면 GET 요청을 수행하고 응답에 따라 단추 텍스트를 변경하려고합니다. 몇 시간의 고생 끝에 마침내 다음과 같은 작업을했습니다. 이것은 정말로 최고인가/유일한 것인가?열린 메서드 내에서 jQueryUI 대화 상자 단추 텍스트 변경

아래 주어진 감사

$("#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() {} 
     } 
    ]  
}); 
+0

응답 후 대화 상자를여시겠습니까? – silly

+0

@silly. 아약스 전화 후에 무엇을 바꾸겠습니까? 전체 버튼 객체를 복사하는 방법은 무엇이며 대화 상자를 다시 초기화하는 방법은 무엇입니까? – user1032531

답변

2

당신은이 같은 버튼 텍스트를 변경할 수는 ... 아약스없이 당신이 먼저 ajax.php 통화를 해달라고 왜

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.. 
}); 

See the Live Demo

+0

감사 Dinesh. 재미있는 접근법. 그것은 내 접근 방식보다 깨끗해 보인다. – user1032531

관련 문제