一个漂亮的ExtJs登录窗口(实现登录跳转)

4 篇文章 0 订阅

这几天有代码任务,自己做了个登录界面,感觉不错,拿来共享一下~~

<link rel="stylesheet" href="/ext-3.2.1/resources/css/ext-all.css"
	type="text/css"></link>
<script type="text/javascript" src="/ext-3.2.1/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="/ext-3.2.1/ext-all.js"></script>
</head>
<body>
<script language="javascript">
	var uname = new Ext.form.TextField( {
		id :'uname',
		fieldLabel : '用户名',
		name : 'name',//元素名称
		//anchor:'95%',//也可用此定义自适应宽度
		allowBlank : false,//不允许为空
		value : "admin",
		blankText : '用户名不能为空'//错误提示内容
	});
	var pwd = new Ext.form.TextField( {
		id : 'pwd',
		//xtype: 'textfield',
		inputType : 'password',
		fieldLabel : '密 码',
		//anchor:'95%',
		maxLength : 10,
		name : 'password',
		allowBlank : false,
		value : "12345",
		blankText : '密码不能为空'
	});
	
	Ext.onReady(function() {
		//使用表单提示
			Ext.QuickTips.init();
			Ext.form.Field.prototype.msgTarget = 'side';

			//定义表单
			var simple = new Ext.FormPanel( {
		labelWidth : 75,
		defaults : {
			width : 150
		},
		defaultType : 'textfield',//默认字段类型
		bodyStyle : 'background: #cdcdcd;padding:30 0 0 20;',
		border : false,
		buttonAlign : 'center',
		border : false,
		id : "form",
		//定义表单元素
		items : [ uname, pwd ],
		buttons : [ {
			text : '登录',
			type : 'submit',
			id : 'sb',
			//定义表单提交事件
			handler : save
		}, {
			text : '重置',
			handler : function() {
				simple.form.reset();
			}
		} ],
		keys : [ {
			key : Ext.EventObject.ENTER,
			fn : save,
			scope : this
		} ]
	});
			function save() {
				var userName = uname.getValue();
				var userPass = pwd.getValue();
				//验证合法后使用加载进度条
				if (simple.form.isValid()) {
					//提交到服务器操作
					simple.form.submit({
						waitMsg : '正在进行登陆验证,请稍后...',
						url : 'login!checkUser.action',
						method : 'post',
						params : {
						userName : userName,
						userPass : userPass
						},
						//提交成功的回调函数
						success : function(form, action) {
							if (action.result.msg == 'OK') {
								window.location.href="login!index.action?userName="+userName;
							}else if(action.result.msg == 'ERROR') {
								window.location.href="index.jsp";
							}
						},
						//提交失败的回调函数
						failure : function(form, action) {
							switch (action.failureType) {  
			                case Ext.form.Action.CLIENT_INVALID:  
			                    Ext.Msg.alert('错误提示', '表单数据非法请核实后重新输入!');  
			                    break;  
			                case Ext.form.Action.CONNECT_FAILURE:  
			                    Ext.Msg.alert('错误提示', '网络连接异常!');  
			                    break;  
			                case Ext.form.Action.SERVER_INVALID:  
			                   Ext.Msg.alert('错误提示', "您的输入用户信息有误,请核实后重新输入!");  
			                   simple.form.reset();    
			            	}
						}
					});
				}
			};
			//定义窗体
			var win = new Ext.Window({
				id : 'win',
				layout : 'fit', //自适应布局   
				align : 'center',
				width : 330,
				height : 182,
				resizable : false,
				draggable : false,
				border : false,
				bodyStyle : 'padding:5px;background:gray',
				maximizable : false,//禁止最大化
				closeAction : 'close',
				closable : false,//禁止关闭,
				items : simple
			//将表单作为窗体元素嵌套布局
			});
			win.show();//显示窗体
			pwd.focus(false, 100);
		});
</script>
</body>

效果:


这里是在SSH框架上做的。而且实现了struts2登录跳转。

关于登录跳转,很多人都说难做,也确实有点难做。因为submit提交后success里得到的是个字符串,并不会完成页面跳转的动作!要想跳转,得自己在success里写跳转的代码。上面我用的方式是一种,有一点不好的是:通过window.location.href方式跳转到主页面,浏览器的URL里显示传递的参数!

我知道,还有一种瞒天过海之术,可以不会把参数显示在url里。就是在做一个div,设置这个div为不可见。这个div里放置一个form,给这个form配置method=post。然后将window.location.href="login!index.action?userName="+userName;替换成:那个form.action=login!index.action;form.submit会实现成功跳转。但这种办法最好不要用!



  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值