Extjs не может прочитать свойство 'dom' из null

Короче говоря, у меня есть панель входа в систему, которая будет отображаться, когда событие onClick имеет значение true, но я получаю ошибку Cannot read property 'dom' of null, Когда я нажимаю второй раз - панель отображается, но некоторые ее элементы не отображаются. Когда я щелкаю в 3-й раз, у других элементов появляется последняя, ​​последняя ошибка: "Невозможно вызвать метод" Добавить ToFront "из неопределенного".

Ext.onReady(function() {

    Ext.QuickTips.init();
    Ext.ns('Site.login');

    var globalKeyMap = new Ext.KeyMap(document);
    globalKeyMap.accessKey = function(key, handler, scope) {
        var h = function(n, e) {
            e.preventDefault();
            handler.call(scope || this, n, e);
        };
        this.on(key, h, scope);
    };

    var trackEnter = function(tf, e) {
        if (e.keyCode == 13) {
            e.stopPropagation();
            doLogin();
        }
    }

    var doLogin = function() {
        var f = loginPanel.getForm();
        if (f.isValid()) {
            f.doAction(new Hypo.form.Action.DwrSubmit(f, {
                waitMsg: 'Authentication is in progress',
                invoker: function(form, cb) {
                    Login.login(form.getValues(), cb);
                },
                success: function(fp, o) {
                    loginForm.hide();
                    Ext.getBody().addClass("x-body-masked");
                    var w = loginForm;
                    w.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true));
                    w.mask.show();
                    if(o.result.data[0].authorities[0].authority=='ROLE_SUPERVISOR')
                    {
                        setTimeout('document.location = "AdminUsers.jsp"');
                    }
                    else if(o.result.data[0].authorities[0].authority=='ROLE_ADMIN')
                    {
                        setTimeout('document.location = "AdminUsers.jsp"');
                    }
                    else
                    {
                        setTimeout('document.location = "List.jsp"');
                    }
                }
            }));
        }
    }

    var loginPanel = new Ext.FormPanel({
        id: 'loginPanel',
        labelWidth: 75, // label settings here cascade unless overridden
        frame: false,
        border: false,
        bodyStyle:'padding:5px 5px 0',
        width: 350,
        defaults: {
            width: 230
        },
        defaultType: 'textfield',
        autoHeight: true,
        items: [{
            id: 'idxLogin',
            fieldLabel: 'Login',
            name: 'login',
            allowBlank: false,
            enableKeyEvents: true,
            maxLength: 50,
            listeners: {
                'keypress': trackEnter
            }
        }, new Ext.form.TextField({
            fieldLabel: 'Password',
            name: 'password',
            inputType: 'password',
            enableKeyEvents: true,
            maxLength: 50,
            listeners: {
                'keypress': trackEnter
            }
        })
        ]
    });

    var loginForm = new Ext.Window({
        layout      : 'fit',
        width       : 350,
        closable    : false,
        modal: true,
        plain       : true,
        title: 'User Authentication',
        items: loginPanel,
        autoHeight: true,
        buttons: [{
            text: 'OK',
            handler: doLogin
        },{
            text: 'Cancel',
            handler: function() {
                loginForm.hide();
            }
        }],
        listeners: {
            'activate': function() {
                setTimeout(function() {
                    Ext.getCmp("idxLogin").focus();
                }, 100);
            }
        }
    });
    Site.login.window = loginForm;

    });

<a href="javascript://" onclick="Site.login.window.show();return false">Login</a>

Я попытался добавить renderTo:'someDiv' и добавить к телу div с идентификатором "someDiv". Но я получил то же сообщение об ошибке.

Пожалуйста, помогите с этим.

0 ответов

Другие вопросы по тегам