Problém
Snažím se nastavit atribut HTML auto-complete="off"
na vstupní prvek s třídou slds-input
. Z nějakého důvodu to šablona při vykreslování vždy převede na autocomplete="true"
.
Vytvořil jsem vlastní vyhledávací pole pro hledání sObjects, takže chování automatického doplňování prohlížeče je zjevně neužitečné, a pokud by to byl běžný html, mohl bych jen přidat atribut autocomplete
s hodnotou off
, ale aura se nezdá dovolte mi.
Jedna odpověď, kterou jsem našel, navrhla použít html-autocomplete="off"
, takže jsem to také zkusil, a když to udělám, atribut se vůbec nevykreslí.
Co jsem vyzkoušel
- Snažil jsem se zahrnout
autocomplete="off"
ahtml-autocomplete="off"
ve vstupní značce - jsem se pokusil zahrnout
autocomplette="off"
ahtml-autocomplete="off"
do tagu formuláře obklopujícího vstupní značku - Zkoušel jsem upravit hodnotu
aria-autocomplete
(to neudělalo nic, ne že bych to opravdu očekával, ale chtěl jsem to alespoň zkusit). - V toto PDF dokumentu aura doc atribut html
autocomplete
není uveden. - Nalezl jsem seznam podporované značky HTML v auře , ale žádný seznam podporovaných atributů
- O tomto chování nemohu v dokumentech lightning nic najít a je to velmi obtížné googlit kvůli prvku automatického doplňování blesk / aura
Existuje nějaký způsob, jak to udělat? Nebo dokumentace o tomto chování?
Ukázka kódu:
Toto:
<aura:component> <input type="text" autocomplete="off" /> </aura:component>
vyjde ve finále HTML v tomto formátu:
<input type="text" autocomplete="true" data-aura-rendered-by="5:0">
Komentáře
- Co ' vám brání v používání běžného html vstupu? Můžete přidat do kódu nějaký kód, který vám pomůže s reprodukcí.
- Co mě ' zastavuje je způsob, jakým aura (nebo možná blesk) upravuje kód. Přidán další kód
- Používám autocomplete = " heslo " místo vypnuto / zapnuto, protože to Chrome respektuje. Jinak Chrome obvykle automatické doplňování ignoruje. Vyzkoušejte to a zjistěte, zda to funguje pro vás
Odpověď
Možné od jara 19. Viz zde
automatické doplňování – řídí automatické vyplňování pole. Tento atribut je podporován pro typy zadávání e-mailů, vyhledávání, tel, textů a adres URL. Hodnoty zapnutí a vypnutí jsou podporovány, ale chování automatického vyplňování závisí na prohlížeči. Když nastavíte atribut automatického doplňování, komponenta lightning: input předá hodnotu, aby ji interpretoval prohlížeč.
Odpovědět
Právě jsem hovořil s podporou na Salesforce a zjevně je to v současné době nemožné.
(Odpověď zde nechávám jako přijatou odpověď, protože jsem chci, aby někdo našel tuto otázku, když existuje lepší možnost, a odpověděl na ni a já je označím jako přijaté.)
Řešení:
Nicméně používám následující hackové řešení:
Dal jsem svému prvku ID a provedl tento JS:
turnOffAutocomplete : function(component) { var input = document.getElementById("id-of-the-input"); if(input.getAttribute("autocomplete") !== "off"){ input.setAttribute("autocomplete","off"); } }
Provádím to ne v init
(protože se provádí před vykreslením prvků), ale místo toho, když je vstupní prvek zaměřen.
Jakékoli komentáře ke zlepšení tohoto stavu (tak to neudělá) „nemusí být prováděno pokaždé, když je zaměřen vstup) by bylo oceněno.
Komentáře
- Přesunout tuto logiku do vykreslovacího modulu.
Odpovědět
Jediné řešení, které jsem našel, bylo použijte textArea s řádky = „1“
<textarea type="text" class="slds-input" rows="1" style="resize : none;" />
Můžete přidat několik slds
tříd, aby měly stejné zobrazení jako normální vstup.
Odpověď
Můžete to zkusit pracoval pro mě pomocí aura: id a poté vypnul „automatické doplňování“. Můžete použít v metodě init ovladače osvětlení
component.find("fieldSelect").set("v.autocomplete","off");