通过 ExtJS 3 使浏览器记住表单中的名称/密码

Posted

技术标签:

【中文标题】通过 ExtJS 3 使浏览器记住表单中的名称/密码【英文标题】:Make Browser to remember name/password in form by ExtJS 3 【发布时间】:2013-02-19 12:41:33 【问题描述】:

我必须制作一个表单,浏览器可以看到什么并保存密码。我发现了很多解决方案,并且在 Firefox 中 - 例如 - 用户 owlness 的解决方案非常好用且非常有用。但 Chrome 没有显示任何内容,控制台显示:Uncaught TypeError: Cannot call method 'addUnits' of null

<form id="auth-form" action="" method="POST">
  <input id="auth-username" type="text" name="username" class="x-hidden">
  <input id="auth-password" type="password" name="password" class="x-hidden">
  <input id="auth-submit" type="submit" class="x-hidden">
</form>

...

       new Ext.FormPanel(
            region: 'south',
            //id: 'login',
            el: 'auth-form',
            autoShow: true,
            height: 125,
            title: 'Login',
            padding: 5,
            frame: true,
            labelWidth: 80,
            defaultType: 'textfield',
            defaults: 
                allowBlank: false,
                width: 250
            ,

            items: [
                fieldLabel: 'Username',
                el: 'auth-username',
                autoShow: true,
                inputType: 'text',
                //id: 'username',
                name: 'username'
            , 
                fieldLabel: 'Password',
                el: 'auth-password',
                autoShow: true,
                inputType: 'password',
                //id: 'password',
                name: 'password'
            ],

            // auto focus ...

            // submit on enter ...

            buttons: [
                text: 'Login',
                type: 'submit',
                //el: 'auth-submit',
                //autoShow: true,
                handler: function (button) 
                    var b = button; // scope
                    var f = b.ownerCt.ownerCt.getForm();
                    if (!f.isValid()) 
                        return;
                    
                    f.standardSubmit = true;
                    b.ownerCt.disable();

                    MY.ajax.login(
                        scope: this,
                        success: function (res) 
                            f.submit();
                            win.close();
                        ,
                        failure: function () 
                            b.ownerCt.enable();
                        ,
                        params: f.getFieldValues()
                    );
                
            ]
        )

你能帮我吗,我该怎么办?

【问题讨论】:

嗨,你能解决这个问题吗?如果您有任何指示,请告诉我。谢谢 【参考方案1】:

您可以将它们保存为 cookie:

Ext.util.Cookies.set('username', usernameValue, new Date().add(Date.DAY, 90));

// ...

items: [
            fieldLabel: 'Username',
            el: 'auth-username',
            autoShow: true,
            inputType: 'text',
            //id: 'username',
            name: 'username',
            value: Ext.util.Cookies.get('username')
        , 
            fieldLabel: 'Password',
            el: 'auth-password',
            autoShow: true,
            inputType: 'password',
            //id: 'password',
            name: 'password',
            value: Ext.util.Cookies.get('password')
        ]

【讨论】:

以上是关于通过 ExtJS 3 使浏览器记住表单中的名称/密码的主要内容,如果未能解决你的问题,请参考以下文章

CardLayout 中的 ExtJS 表单

extjs 表单元素中的 Extjs 组合框在禁用时未灰显

ExtJS:使用“记住我”功能登录

Extjs 4.2 加载名称为 [] 的表单数据

网页怎么保存密码 怎么让网页记住密码

如何删除 ExtJS 4 中字段的“名称”参数