用Extjs做登录

index.html

<div id="north-div"><a id="login" href="#">Login</a></div>

login.js

Ext.onReady(function() {
    Ext.BLANK_IMAGE_URL = '../../ext/resources/images/default/s.gif'; //替换默认的空白图片
    Ext.QuickTips.init();  // 初始化鼠标停留时的显示框,这里用不上
    // 点击登录时触发的事件
    onClickLogin = function() {
        var loginUrl = '../../login.do'; // 登录请求的url
        // 这里Login的Panel分为两部分,logoPanel和formPanel
        // 创建logoPanel对象
        var logoPanel = new Ext.Panel( {
            baseCls : 'x-plain',
            html : 'Here is your logo'
        });
        // 创建formPanel对象
        var formPanel = new Ext.form.FormPanel( {
            bodyStyle : 'padding:35px 25px 0',
            baseCls : 'x-plain',
            defaults : {
                width : 200
            },
            defaultType : 'textfield',
            frame : false,
            id : 'login-form',
            // form面板上的组件
            items : [ {
                fieldLabel : 'User Name',
                name : 'name'
            }, {
                fieldLabel : 'Password',
                inputType : 'password',
                name : 'password'
            }],
            labelWidth : 120,
            region : 'center',
            url : loginUrl
        });
        // 创建window对象,用来装置以上两个面板,使login显示在一个window上
        var win = new Ext.Window( {
            // window上的按钮,按钮时独立的,也可以设置在formPanel里
            buttons : [ {
                handler : function() { // 按钮login触发的事件
                    form.submit( {
                        waitMsg : 'Please Wait',
                        reset : true,
                        success : this.Success, // 登录成功的时候执行
                        fail : this.Fail,  // 登录失败的时候执行
                        scope : onClickLogin // 这里是为了指定this的范围
                    });
                },
                scope : onClickLogin,
                text : 'LOGIN'
            }, {
                handler : function() { // 按钮cancel触发的事件
                    win.hide();
                },
                scope : onClickLogin,
                text : 'CANCEL'
            }],
            buttonAlign : 'right',
            closable : false,
            draggable : true,
            height : 200,
            id : 'login-win',
            layout : 'border',
            plain : true,
            // window上的组件
            items : [logoPanel, formPanel],
            title : 'Login',
            width : 400
        });
        // 取得表单,参考login按钮触发的事件
        form = formPanel.getForm();

        // 显示window
        win.show();

        // return里的为onClickLogin的共有函数
        return {
            Success : function(f, a) {
                if (a && a.result) { //a表示action,a.result表示action返回的结果数据
                    win.destroy(true);
                    // setCookie
                    // set window.location
                }
            },
            Fail : function(f, a) {
                Ext.Msg.alert('Login failed');
            }
        };
    };
    // 设置login事件
    Ext.get('login').on('click', onClickLogin);
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值