Ext学习1——登录页面
来源:互联网 发布:米思米 cad数据下载 编辑:程序博客网 时间:2024/06/06 05:30
学习Ext 组件使用,描绘一个登陆页面。
1. 首先在页面中心放置一个window 窗口,窗口不可拖动,不可放大缩小,不能关闭。
2. 在窗体内部放置一个 Form,form使用水平布局( layout: { type:'vbox',align:'stretch' } ) ,使用flex 比例将Form水平分为 1.6:1
3. 在Form水平上方 放置图片,使用的panel组件,使用html属性放置图片;在Form 下方使用垂直布局
(layout{ type: 'hbox', padding: '5', align: 'stretch'},),将Form水平下方利用flex属性分为1:1.5的左右两部分
4. 在左部分以水平布局,绘制一组两个单选框;在右部分以Form布局( layout:"form"),绘制用户名,密码两个文本输入框,
并使用buttons属性绘制登录,重置两个按钮,使用handler属性,绑定按钮点击事件。
5. 使用组件 Ext.util.KeyMap ,为按钮增加键盘按键事件,即当点击回车键时,等同点击登录按钮,
属性 target:需要绑定的组件id,属性key:键盘按键,如回车键:Ext.event.Event.ENTER, 属性 fn:按键后执行的事件
代码:
<span style="font-size:14px;">var xmname = "/dynaReport";Ext.onReady(function() {var loginForm = Ext.create("Ext.form.Panel",{/// lable标题对齐方式 top 上下对齐lableAlign:"top", frame:true,monitorValid : true,// 把有formBind:true的按钮和验证绑定id : 'login',width:600,layout: { type:'vbox', align:'stretch' }, defaults:{margin:'0 0 3 0'},items:[ { html:"<img src="+xmname+"/common/images/01.jpg width='590'>", flex:1.6 },{ flex:1, frame:true, layout: { type: 'hbox', padding: '5', align: 'stretch' }, defaults:{ margin: '0 5 0 0' }, items:[{ frame:true, flex:1, layout:"form", padding: '0', defaults:{ margin: '0 0 0 0' }, items:[ { xtype : 'fieldcontainer', fieldLabel : '登录系统', defaultType: 'radiofield', defaults: { flex: 1 }, layout: 'vbox', labelWidth:50, items: [ { boxLabel : '报表1', name : 'projects', inputValue: 'zg', labelPad:50, id : 'radio1', checked:true }, { boxLabel : '报表2', name : 'projects', inputValue: 'jm', id : 'radio2' } ] } ] },{ frame:true, layout:"form", padding: '5', flex:1.5, defaults:{ margin: '0 5 0 0' }, items:[ { xtype:"textfield", name:"username", fieldLabel:"账号", id:"username", //是否可以为空 allowBlank:false, //为空时提示 blankText:"账号不能为空" } ,{ xtype:"textfield", name:"userpwd", id:"passwd", fieldLabel:"密码", allowBlank:false, blankText:"密码不能为空", inputType:"password" }], buttons:[{ text:"登录", formBind:true, type:"submit", handler:formsubmit },{ text : '取消', handler : function() { loginForm.form.reset(); }// 重置表单 } ] }] }]}); var win = Ext.create('Ext.window.Window', { width: 600, height: 400, minHeight: 400, minWidth: 600, hidden: false, maximizable: false, closable:false, resizable:false, draggable:false, title: '登陆窗口', autoShow: true, items: loginForm }); Ext.create('Ext.util.KeyMap', { target: 'login', key: Ext.event.Event.ENTER, fn: function (key, ev) { formsubmit(); ev.stopEvent(); return false; } }); function formsubmit(){ // 验证合法后使用加载进度条if(loginForm.form.isValid()){ tipToolShow(); var passwd = Ext.getCmp('passwd').getValue(); var hash = hex_md5(passwd); Ext.getCmp('passwd').setValue(hash);// 提交到服务器操作loginForm.form.doAction('submit', {url : xmname+'/login/userLogin.json',// 文件路径method : 'post',// 提交方法post或getparams : '',// 提交成功的回调函数success : function(form, action) {if (action.result.msg == 'ok') { //this.getEl().dom.action = 'memberAction.do?action=1'; //连接到服务器的url地址 // this.getEl().dom.submit(); Ext.get('f1').dom.submit();} else { Ext.MessageBox.alert('登陆失败',action.result.msg);}},// 提交失败的回调函数failure : function() {Ext.MessageBox.alert('错误', '服务器出现错误请稍后再试!');}});}};function tipToolShow(toolspeed){if(!toolspeed){toolspeed = 50;}Ext.MessageBox.show({ title: 'Please wait', msg: 'Loading items...', progressText: 'Initializing...', width:300, progress:true, closable:false, animateTarget: 'loading' }); // this hideous block creates the bogus progress var f = function(v){ return function(){ var i = v/80; Ext.MessageBox.updateProgress(i, Math.round(100*i)+'% completed '); }; }; for(var i = 1; i < 81; i++){ setTimeout(f(i), i*toolspeed); }}var firebugWarning = function () { var cp = Ext.create('Ext.state.CookieProvider'); if (window.console && window.console.firebug && ! cp.get('hideFBWarning')){ var tpl = Ext.create('Ext.Template', '<div id="fb" style="border: 1px solid #FF0000; background-color:#FFAAAA; display:none; padding:15px; color:#000000;"><b>Warning: </b> Firebug is known to cause performance issues with Ext JS. <a href="#" id="hideWarning">[ Hide ]</a></div>' ); var newEl = tpl.insertFirst('all-demos'); Ext.fly('hideWarning').on('click', function() { Ext.fly(newEl).slideOut('t',{remove:true}); cp.set('hideFBWarning', true); }); Ext.fly(newEl).slideIn(); }};var hideMask = function () { Ext.get('loading').remove(); Ext.fly('loading-mask').animate({ opacity:0, remove:true, callback: firebugWarning });};Ext.defer(hideMask, 250);});</span>
结果效果页面如图:
- Ext学习1——登录页面
- Ext.js5表单—登录表单(40)
- 一个用ext做的登录页面
- Ext学习笔记——Grid(1)
- PHP学习笔记 登录页面
- Ext 页面
- Ext学习总结——序
- ExtJS学习——Ext.Element
- Ext学习2——主页面
- Ext学习第一篇——HelloWorld
- Django——登录后回到请求登录的页面
- Ext学习笔记 1
- Ext 学习(1)---ExtButtons
- ext使用学习1
- Ext学习-1
- Ext学习系列(1)-- Ext.data.JsonReader
- EXT,登录后点击backspace键会退回到登录页面,解决方法
- 黑马程序员——iOS 开发学习---登录注册页面跳转
- linux驱动学习(三) helloword 和 驱动Makefile
- 运输问题
- myeclipse破解简单方法
- 安装repo
- Enum用法小结
- Ext学习1——登录页面
- Ext4文件系统二之架构分析
- 图片从dll中获取
- 排序算法总结---直接插入排序
- node.js中mysql连接池的使用
- C# 中的常用正则表达式大全
- android真机调试问题 Adb connection Error:远程主机强迫关闭了一个现有的连接
- JavaScript Number Conversion
- ATI 显卡驱动程序安装找不到INF文件(快速安装AMD显卡驱动)