Ext 使用指南-用户基本登录

翻译自http://extjs.com/learn/Tutorial:Basic_Login;作者:David Fitch

1.引ext相关源文件:
假设首页是index.asp:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/igs/includes/ext/resources/css/ext-all.css">
<script type="text/javascript" src="/igs/includes/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="/igs/includes/ext/ext-all.js"></script>
<script type="text/javascript" src="login.js"></script>
</head>
<body></body>
</html>

注:根据ext路径相应修改上面src路径。

2.看login.js
login.js 是用户登录的核心部分,它在弹出窗口内建了一个form面板,显示在客户端,form使用ajax提交数据,控制提交成功和失败

代码:
Ext.onReady(function(){
Ext.QuickTips.init();
 
// 创建一个 FormPanel变量,配置选项如下

var login = new Ext.FormPanel({
labelWidth:80,
url:'login.asp',
frame:true,
title:'Please Login',
width:230,
padding:200,
defaultType:'textfield',
monitorValid:true,
 
//配置用户名,密码两个文本框
// "name"属性定义要传到服务器端的变量名.
items:[{
fieldLabel:'用户名',
name:'loginUsername',
allowBlank:false
},{
fieldLabel:'密码',
name:'loginPassword',
inputType:'password',
allowBlank:false
}],
 
// 定义botton按钮
buttons:[{
text:'Login',
formBind: true,
// 当用户点击按钮触发函数
handler:function(){
login.getForm().submit({
method:'POST',
waitTitle:'Connecting',
waitMsg:'Sending data...',
 
` // 传loginUsername,loginPasseord 到服务器端的url
url:'login.asp',
 
// 根据服务器端返回值触发success或failure函数.
//由login.asp 的response 决定执行sucess或failure函数
//服务器端返回有效的json值:例如:response.write "{ success: true}"
//或者response.write "{ success: false, errors: { reason: 'Login failed. Try again.' }}"
			//如果验证成功,弹出对话框,点击“OK”,将转到登陆成功后定义的页面:test.asp

 
success:function(){
Ext.Msg.alert('Status', 'Login Successful!.', function(btn, text){
if (btn == 'ok'){
var redirect = 'test.asp';
window.location = redirect;
}
});
},
		     //失败函数,如果登陆失败,弹出错误

failure:function(form, action){
if(action.failureType == 'server'){
			    //Ext.util.JSON.decode 把服务器端的json数据转换成javascript对象
obj = Ext.util.JSON.decode(action.response.responseText);
Ext.Msg.alert('Login Failed!', obj.errors.reason);
}else{
Ext.Msg.alert('Warning!', 'Authentication server is unreachable : ' + action.response.responseText + "abcd");
}
login.getForm().reset();
}
});
}
}]
});
 
 
// 创建一个窗口,把 formPanel放在这个窗口里
var win = new Ext.Window({
layout:'fit',
width:300,
height:150,
closable: false,
resizable: false,
plain: true,
items: [login]
});
win.show();
});
 
Login.asp:
//服务器端代码,如果用户名是"f",用户登陆成功,否则,用户登陆失败
<%
 
if request.form("loginUsername") = "f" then
	response.write "{ success: true}"
else
	response.write "{ success: false, errors: { reason: 'Login failed. Try again.' }}"
end if
 
%>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值