我試圖創建一個很常見的一個簡單的登錄窗口中「記住我」功能登錄。登錄驗證完成AJAX樣式,因此瀏覽器不會記住我的輸入。ExtJS的:與「記住我」的功能
我的方法是使用內置的state
功能,但如何使用它混淆了我。
Ext.state.Manager.setProvider(new Ext.state.CookieProvider({
expires: new Date(new Date().getTime()+(1000*60*60*24*7)), //7 days from now
}));
...
{
xtype: 'textfield',
fieldLabel: 'User name',
id: 'txt-username',
stateful: true,
stateId: 'username'
}, {
xtype: 'textfield',
fieldLabel: 'Password',
id: 'txt-password',
inputType: 'password',
stateful: true,
stateId: 'password'
}, {
xtype: 'button',
text: 'Validate',
stateEvents: 'click'
}
我知道我必須實現getState
的方法,但是什麼成分(我的猜測是對兩個文本框)?我還沒有意識到的另一件事是,我的點擊事件按鈕連接到我的文本域的狀態屬性?
非常漂亮的分析和明確的答案! – timdev 2010-05-31 19:48:06
同意,不要爲此使用狀態。此外,任何客戶端驗證也必須在服務器端完成,因爲任何JS驗證都可以被惡意用戶輕鬆地繞過Firebug。 – 2010-05-31 22:18:25
非常感謝您的精心解答。我已經放棄了AJAX功能並改用你的方法。如果能夠使用AJAX身份驗證本來就不錯,因爲我可以在應用程序上放置一個模式窗口並進行驗證,而無需重新加載整個站點。 – Chau 2010-06-01 08:54:29