ExtJS如何修改textfield参数autocomplete =“off”

时间:2012-10-08 14:16:25

标签: extjs4 extjs

一些现代(Safari,chrom,firefox)浏览器记录信息,并允许您在回来时自动填写一些文本字段。

我想在ExtJS中做到这一点。我在这里有一个答案:

How to get Chrome to remember login on forms?

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

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

2 个答案:

答案 0 :(得分:12)

您希望向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'
            });
        }
    }
}

答案 1 :(得分: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')
            }
        },
    },