После предотвращения onClose с SimpleModal элемент управления закрытием по умолчанию не работает - PullRequest
3 голосов
/ 15 апреля 2011

В базовой реализации SimpleModal я использую опцию onClose для проверки состояния грязной формы и предотвращения закрытия:

.. 
    function onModalClose() {
       if (this.dirty && 
             !confirm('You have unsaved changes, continue anyway?')) {
           return;
       } 
       this.dirty=false;
       $.modal.close();
    }
..

Проблема в том, что если пользователь отменяет операцию закрытия, элемент управления Закрыть по умолчанию в диалоговом окне больше не работает. $.modal.close() все еще работает.

Я уверен, что смогу обойти это, не используя кнопку по умолчанию или сделав что-то вроде активной привязки к ней моей собственной функции закрытия, но это кажется странным, и мне интересно, есть ли какое-то простое решение, которое я с видом.

1 Ответ

4 голосов
/ 23 мая 2011

Это что-то вроде хака, но я успешно справился со следующим кодом. (Примечание: я определил функцию onClose, поэтому this указывает на модальное диалоговое окно.)

 onClose: function () {
     if (this.dirty &&
            !confirm('You have unsaved changes, continue anyway?')) {
         this.bindEvents();
         this.occb = false;
         return;
     }
     $.modal.close();
  }  
...