ExtJS Как изменить параметр текстового поля autocomplete = "off"

Некоторые современные браузеры Safari, chrom, firefox записывают информацию и позволяют автозаполнять некоторые текстовые поля при возврате.

Я хочу сделать это в ExtJS. У меня есть ответ:

Как заставить Chrome запомнить логин в формах?

Но в ExtJS я не могу получить доступ к параметру autocomplete. Он всегда жестко закодирован autocomplete="off". В документе я не нашел, как его изменить: http://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.field.Text

Есть ли у кого-то простой ответ на изменение этого параметра?

Ответ 1

Вы хотите добавить слушателя 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'
            });
        }
    }
}

Ответ 2

Обратите внимание, что для работы 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')
            }
        },
    },