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')
}
},
},