Статический метод show в Ext.Msg, который вы вызываете, в основном переконфигурирует предыдущий MessageBox и поэтому запутывается при скрытии и повторном отображении.
Вам следует создать новый экземпляр класса Ext.MessageBox ивызовите метод show этого объекта, чтобы он использовал независимые экземпляры.
var msg = new Ext.MessageBox().show({
title: 'Username',
msg: 'Please enter your username',
buttons: Ext.MessageBox.OKCANCEL,
prompt:{ maxlength : 180, autocapitalize : false },
modal: true,
fn: function(buttonId, text) {
console.log("OK ("+text+"), what is you password?");
if (buttonId == 'ok')
{
var msg2 = new Ext.MessageBox().show({
title: 'Password',
msg: 'Please enter your password',
buttons: Ext.MessageBox.OKCANCEL,
prompt:{ maxlength : 180, autocapitalize : false },
modal: true,
fn: function(buttonId2, text2) {
if (buttonId == 'ok')
{
console.log("OK ("+text+", "+text2+"), attempting login..");
}
},
icon: Ext.MessageBox.INFO
});
}
},
icon: Ext.MessageBox.INFO
});
Хотя это работает, я бы порекомендовал вам создать панель пользовательских форм, содержащую оба поля, и таким образом собирать информацию.
Надеюсь, это поможет.Стюарт