2013-07-31 3 views
0

Итак, у меня есть окно сообщений, которое я построил, чтобы отправлять сообщение. Он имеет 2 входа и кнопки «ОК» и «Отмена». Я могу получить доступ к содержимому и сделать нормальную логику довольно легко, как его настроить:Как сохранить 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 
      } 
     } 
    }); 

Существует только одна проблема: я не могу найти способ, чтобы держать коробку от автоматического закрытия, когда OK является нажат. В идеале я хотел бы быстро проверить, чтобы два входа не были пустыми. Я думаю, что я могу просто переопределить кнопки, разместив пользовательские кнопки в разделе html, но если есть способ остановить автоматическое закрытие, он будет более синтаксически приятным и читаемым. Кто-нибудь знает, возможно ли это?

ответ

2

О, мой! Вы действительно должны рассмотреть возможность использования некоторых регулярный Ext text field и text area как items окна вместо собственной обожженной HTML ...

Во всяком случае, используйте 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

Смежные вопросы