2013-09-26 3 views
1

У меня есть код, который выглядит следующим образом:ExtJs 4,2 вложенное окно появится запрос на

 Ext.Msg.prompt(Translation.RefusalMessageBoxTitle, "", 
      function(btn, text, cfg){ 

       if(btn == 'ok' && Ext.isEmpty(text)) { 
        var newMsg = '<span style="color:red;" class="error">' + Translation.RefusalMessageBoxEmpty + '</span>'; 
        Ext.Msg.show(Ext.apply({}, { msg: newMsg }, cfg)); 
       }else if(btn !== 'ok'){ 
        return; 
       }else if(btn == 'ok'){ 
        this.sendRefusalAnswer(methodName, text, "reject", Constant.DocumentStatus.REFUSED, me.selectedDocument.get('id')); 
       } 

      }, this, true, ''); 

Теперь М.З. проблема заключается в том, что

var newMsg = '<span style="color:red;" class="error">' + Translation.RefusalMessageBoxEmpty + '</span>'; 
         Ext.Msg.show(Ext.apply({}, { msg: newMsg }, cfg)); 

часть кода запускается на выполнение, но затем окно закрывается imidietly ... как я могу предотвратить это ??? есть идеи?

EDIT:

Это происходит только на ExtJS 4.2 Дата сборки сборки: 2013-03-11 22:33:40 (aed16176e68b5e8aa1433452b12805c0ad913836) ТОЛЬКО !!!!!

версия Дата сборки: 2013-05-16 14:36:50 (f9be68accb407158ba2b1be2c226a6ce1f649314) работает нормально ° - °

ответ

0

я преобразовал его в объект сообщения:

 Ext.Msg.show({ 

      title: Translation.RefusalMessageBoxTitle, 
      minWidth: this.minPromptWidth, 
      buttons: Ext.Msg.OKCANCEL, 
      callback: function(btn, text, cfg){ 

       if(btn == 'ok' && Ext.isEmpty(text)) { 
        var newMsg = '<span style="color:red;" class="error">' + Translation.RefusalMessageBoxEmpty + '</span>'; 
        Ext.Msg.show(Ext.apply({}, { msg: newMsg }, cfg)); 
       }else if(btn !== 'ok'){ 
        return; 
       }else if(btn == 'ok'){ 
        this.sendRefusalAnswer(methodName, text, "reject", Constant.DocumentStatus.REFUSED, me.selectedDocument.get('id')); 
       } 

      }, 
      scope:this, 
      multiline: true, 

     }); 

но до сих пор не могу понять, как предотвратить его от закрытия на меня ° _ °

+0

Я проверил бы консоль JS, когда вы запустили ее, и убедитесь, что некоторая другая ошибка не вызывает закрытия MessageBox. Когда я запускаю ваш код как есть, он создает поведение, которое вы описываете, потому что переменные не определены. Однако, когда я заменяю неопределенные переменные на что-то, что определено, оно работает точно так, как вы этого хотите. См. Этот рабочий пример: https://fiddle.sencha.com/#fiddle/mc – existdissolve

+0

Zour example dous то же самое, что и мой dous .... он оставляет серое наложение на сайте, которое я не могу удалить. Это проблема, с которой я сражаюсь. – Sangoku

+0

Я не вижу, где это делается. Более того, это не вопрос, который вы упомянули в исходном вопросе ... – existdissolve

0

Не используйте Ext.Msg одиночки, а обычные окна или создать несколько экземпляров от Ext.window.MessageBox. Синглтон сам по себе является окном, а компонент разделяется всеми вызовами alert, confirm, prompt и т. Д., Поэтому одновременное отображение нескольких окон одновременно невозможно.

+0

Я не хочу показывать несколько окон, чтобы предотвратить его закрытие. – Sangoku

0

Ok Я нашел его ... проклятая версия сборки была различной на машине mz build.

I локально имеют

Дата сборки: 2013-03-11 22:33:40 (aed16176e68b5e8aa1433452b12805c0ad913836)

А на М.З. тестовой машине мы

Дата сборки: 2013-05-16 14:36:50 (f9be68accb407158ba2b1be2c226a6ce1f649314)

На моем местном уровне он не работает ... но на тестовой машине он работает без проблем ... 3 МЕСЯЦА! WTF!

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