2013-07-31 50 views
0

所以我有一個消息框,我建立了可以發送消息。它有2個輸入,一個OK和Cancel按鈕。我可以訪問的內容,很容易做正常的邏輯我是如何設置它:如何保持Sencha Ext.Msg關閉按鈕點擊

Ext.Msg.show({ 
     title: 'Send a Message: ', 
     cls: 'MessageBox', 
     html: '<div class="message-InnerContainer" >' + 
      '<input type="text" id="messageBoxSubject" placeholder="Subject" class="messageBox-Input"/>' + 
      '<textarea id="messageBoxMessage" placeholder="Message" class="messageBox-TextArea"></textarea>' + 
      '<div>', 
     closable: false, 
     buttons: [ 
      { no: 'Cancel', text:'Cancel', cls:'messageBox-CancelButton'}, 
      { yes: 'OK', text:'Ok', cls:'messageBox-OkButton'} 
     ], 
     fn: function (btn) { 
      if (btn == 'ok') { 
       //do success logic 
      } 
      else(){ 
       //do failure logic 
      } 
     } 
    }); 

只有一個問題:我似乎無法找到一種方法來保持從自動閉合盒時,確定是按下。理想情況下,我想進行快速檢查以確保兩個輸入不是空的。我想我可以通過在html部分放置自定義按鈕來覆蓋按鈕,但是如果有辦法停止自動關閉,它會更具語法上的令人愉悅和可讀性。有誰知道它是否可能?

回答

2

哦,我的!你真的應該考慮使用一些正規的分機text fieldtext area作爲窗口,而不是你自己烤的html items ......

無論如何,使用按鈕的handler,而不是fn處理。你就可以做任何你在那裏想,並關閉只有當你覺得它的窗口:

buttons: [ 
    { text:'Cancel', cls:'messageBox-CancelButton', handler: function() { 
     this.hide(); 
    }}, 
    { text:'Ok', cls:'messageBox-OkButton', handler: function() { 
     var allGood = false; 

     // do your stuff here 

     // ... and if your satisfied with the result, close the window 
     if (allGood) { 
      this.hide(); 
     } 
    }} 
] 
+0

作爲一種事後的,如果你真的喜歡與HTML搞亂,我相信jQuery Mobile的將是更適合你的風格。 – rixo