效果图
Login.js代码
/// <reference path="vswd-ext_2.0.2.js" /> Ext.onReady(function() {Ext.QuickTips.init(); <span style="color: green">// Create a variable to hold our EXT Form Panel. // Assign various config options as seen. </span><span style="color: blue">var </span>login = <span style="color: blue">new </span>Ext.FormPanel({ labelWidth: 80, url: <span style="color: #a31515">'Default.aspx'</span>, frame: <span style="color: blue">true</span>, title: <span style="color: #a31515">'请登陆'</span>, defaultType: <span style="color: #a31515">'textfield'</span>, monitorValid: <span style="color: blue">true</span>, <span style="color: green">// Specific attributes for the text fields for username / password. // The "name" attribute defines the name of variables sent to the server. </span>items: [{ fieldLabel: <span style="color: #a31515">'用户名'</span>, name: <span style="color: #a31515">'loginUsername'</span>, allowBlank: <span style="color: blue">false </span>}, { fieldLabel: <span style="color: #a31515">'密码'</span>, name: <span style="color: #a31515">'loginPassword'</span>, inputType: <span style="color: #a31515">'password'</span>, allowBlank: <span style="color: blue">false
}],
<span style="color: green">// All the magic happens after the user clicks the button </span>buttons: [{ text: <span style="color: #a31515">'登陆'</span>, formBind: <span style="color: blue">true</span>, <span style="color: green">// Function that fires when user clicks the button </span>handler: <span style="color: blue">function</span>() { login.getForm().submit({ method: <span style="color: #a31515">'POST'</span>, waitTitle: <span style="color: #a31515">'连接服务器'</span>, waitMsg: <span style="color: #a31515">'传送数据...'</span>, <span style="color: green">// Functions that fire (success or failure) when the server responds. // The one that executes is determined by the // response that comes from login.asp as seen below. The server would // actually respond with valid JSON, // something like: response.write "{ success: true}" or // response.write "{ success: false, errors: { reason: 'Login failed. Try again.' }}" // depending on the logic contained within your server script. // If a success occurs, the user is notified with an alert messagebox, // and when they click "OK", they are redirected to whatever page // you define as redirect. </span>success: <span style="color: blue">function</span>() { Ext.Msg.alert(<span style="color: #a31515">'Status'</span>, <span style="color: #a31515">'Login Successful!'</span>, <span style="color: blue">function</span>(btn, text) { <span style="color: blue">if </span>(btn == <span style="color: #a31515">'ok'</span>) { <span style="color: blue">var </span>redirect = <span style="color: #a31515">'Default.aspx'</span>; window.location = redirect; } }); }, <span style="color: green">// Failure function, see comment above re: success and failure. // 如果登录失败,弹出对话框。 </span>failure: <span style="color: blue">function</span>(form, action) { <span style="color: blue">if </span>(action.failureType == <span style="color: #a31515">'server'</span>) { obj = Ext.util.JSON.decode(action.response.responseText); Ext.Msg.alert(<span style="color: #a31515">'登陆失败!'</span>, obj.errors.reason); } <span style="color: blue">else </span>{ Ext.Msg.alert(<span style="color: #a31515">'Warning!'</span>, <span style="color: #a31515">'Authentication server is unreachable : ' </span>+ action.response.responseText); } login.getForm().reset(); } }); }
}]
}); <span style="color: green">// This just creates a window to wrap the login form. // The login object is passed to the items collection. </span><span style="color: blue">var </span>win = <span style="color: blue">new </span>Ext.Window({ layout: <span style="color: #a31515">'fit'</span>, width: 300, height: 150, closable: <span style="color: blue">false</span>, resizable: <span style="color: blue">false</span>, plain: <span style="color: blue">true</span>, border: <span style="color: blue">false</span>, items: [login] }); win.show(); });</pre>
original link: <a href='http://Apiaceae.github.io/blog/2009/06/14/ExtJS%E7%99%BB%E5%BD%95%E7%95%8C%E9%9D%A2/'>http://Apiaceae.github.io/blog/2009/06/14/ExtJS%E7%99%BB%E5%BD%95%E7%95%8C%E9%9D%A2/</a><br/> written by <a href='http://Apiaceae.github.io'>Hooker</a> posted at <a href='http://Apiaceae.github.io'>http://Apiaceae.github.io</a> </p>