13

一些现代(Safari、chrom、firefox)浏览器记录信息并允许您在返回时自动完成一些文本字段。

我想用 ExtJS 来做。我在这里有一个答案:

如何让 Chrome 记住表单上的登录信息?

但是在 ExtJS 中,我无法访问参数autocomplete。它总是硬编码autocomplete="off"的。在文档中,我没有找到如何修改它:http ://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.field.Text

有人有一个简单的答案来修改这个参数吗?

4

2 回答 2

17

您想向 中添加一个afterrender侦听器textfield,获取对该input元素的引用,并将其autocomplete属性设置为“on”。您可能还想设置它name(因为这是浏览器记住值的方式)。

例子:

http://jsfiddle.net/4TSDu/19/

{
    xtype:'textfield',
    fieldLabel:'some field',
    name:'somefield',
    listeners:{
        afterrender:function(cmp){
            cmp.inputEl.set({
                autocomplete:'on'
            });
        }
    }
}
于 2012-10-08T17:38:39.037 回答
0

请注意,要使 LastPass 工作,您可能需要size从文本字段中删除属性。由于一些奇怪的原因,Sencha 设置 size=1 这很奇怪(是因为 IE6?甚至可能是 IE5.5?)。

无论如何,这使得 LastPass 工作。我猜您可能还想删除autocomplete其他密码管理器的属性。用 ExtJS 6.5 测试。

    {
        xtype: 'textfield',
        name: 'username',
        fieldLabel: 'Username',
        listeners:{
            afterrender:function(cmp){
                cmp.inputEl.dom.removeAttribute('size')
            }
        },
    },
于 2019-10-13T14:51:44.350 回答