2012-06-21 5 views
3

ExtJS 4에서 window.confirm을 무시하려고합니다. 확인은 위와 같은 UI를 사용하여 확인과 마찬가지로 true 또는 false를 반환해야합니다.ExtJs의 모달 대화 상자에서 반환 값 4

window.confirm=function(msg) {var val=Ext.create("Ext.Window",{ 
    title : 'Extra window!', 
    width : 150,        
    height: 100, 
    closable : true,       
    html : msg,       
    modal : true, 
    onEsc:aa, 
    items:[ 
      { 
       xtype:'button', 
       text:'Ok', 
       handler:function() 
       { 
        return true; 
       } 
      }, 
      { 
       xtype:'button', 
       text:'Cancel', 
       handler:function(){ 
        return false; 
       } 
      } 
      ] 
}).show(); 
function aa(btn) 
{ 
    return false; 
} 

어디서나 확인을 사용하는 모달 창을 표시하지만 true 또는 false를 반환하지 않습니다. 즉, 비동기로 실행 중입니다.

나는 showModalDialog를 사용해 보았지만 이번에는 반환 값을 얻지 못했습니다.

+0

수행하고자하는 작업은 무엇입니까? –

+0

확인은 사용자 선택에 따라 true 또는 false를 반환합니다. 향상된 UI로 비슷한 기능을 원합니다. – Leo

답변

3

당신은 동기화 방식으로 모달 대화 상자를 호출 할 수 없습니다 (사용자가 취소 클릭하면 다음 false를 true를 돌려 확인을 선택하는 경우)이 가능 사용자의 선택에 따라 true 또는 false를 반환하는 것입니다. 어떻게 든 응용 프로그램의 다른 위치에서 호출 할 유틸리티 함수에 포장하려면 다음과 같이해야합니다.

showConfirmationDialog: function(question, yesCallback) { 
    //... Create you window 
    //... Show window - add handler to the YES button and call yesCallback from it 
}, 

... 

otherFunction: function() { 

    this.showConfirmationDialog('Do you want to delete record?', function() { 
     // Delete record 
    }); 

} 
+0

그래서 확인 (스타일 지정) 복제를 수행하는 것은 불가능합니까? – Leo

+0

아니요. 여전히 이벤트 중심으로 비동기식으로 진행될 것입니다. – sha

+0

확인하는 대신 https : //developer.mozilla.org/samples/domref/showModalDialog.html – Leo

관련 문제