Cum se setează completarea automată = “ off ” în formă fulger

Problema

Încerc să setez atributul HTML auto-complete="off" pe un element de intrare cu clasa slds-input. Din anumite motive, șablonul convertește întotdeauna acest lucru în autocomplete="true" în redare.

Am creat un câmp de căutare personalizat pentru a căuta obiecte sO, astfel încât comportamentul de completare automată a browserului este în mod evident inutil, și dacă ar fi html obișnuit aș putea include doar atributul autocomplete cu valoarea off, dar aura nu pare să permiteți-mi.

Un răspuns pe care l-am găsit sugerat folosind html-autocomplete="off", așa că am încercat și eu acest lucru, iar când fac acest lucru, atributul nu este redat deloc.

Ce am „încercat

  • Am încercat să includ autocomplete="off" și html-autocomplete="off" în eticheta de intrare
  • Am încercat să includ autocomplette="off" și html-autocomplete="off" în eticheta de formular care înconjoară eticheta de intrare
  • Am încercat să ajustez valoarea aria-autocomplete (asta nu a făcut nimic, nu așa cum mă așteptam cu adevărat, dar am vrut să încerc cel puțin).
  • În acest PDF al aura docs atributul html autocomplete nu este menționat.
  • Am găsit o listă cu etichete HTML acceptate în aura , dar nu există o listă de atribute acceptate
  • Nu pot găsi nimic despre acest comportament în documentele fulgerului și este foarte dificil să cauți Google din cauza elementului fulger / aură de completare automată

Există vreo modalitate de a face acest lucru? Sau documentație despre acest comportament?

Exemplu de cod:

Aceasta:

<aura:component> <input type="text" autocomplete="off" /> </aura:component> 

va ieși în final HTML ca acesta:

<input type="text" autocomplete="true" data-aura-rendered-by="5:0"> 

Comentarii

  • Ce ' s te împiedică să folosești regulat html? Ați putea adăuga un cod la marcaj pentru a vă ajuta să reproduceți.
  • ceea ce ' mă oprește este modul în care aura (sau poate fulgerul) modifică codul. S-au adăugat mai multe coduri
  • Folosesc completare automată = " parolă " în loc de oprire / pornire, deoarece Chrome o respectă. Chrome ignoră de obicei completarea automată în caz contrar. Faceți o lovitură și vedeți dacă funcționează pentru dvs.

Răspundeți

Posibil începând cu primăvara 19. Vedeți aici

completare automată – Controlează completarea automată a câmpului. Acest atribut este acceptat pentru e-mail, căutare, tel, text și tipuri de introducere URL. Valorile activate și dezactivate sunt acceptate, dar comportamentul de completare automată depinde de browser. Când setați atributul de completare automată, componenta fulger: intrare trece valoarea pentru a fi interpretată de browser.

Răspuns

Tocmai am vorbit cu asistență la Salesforce și se pare că acest lucru este în prezent imposibil.

(Îmi las răspunsul aici nu ca răspuns acceptat deoarece doresc ca cineva să găsească această întrebare când există o opțiune mai bună și să răspundă la ea și o voi marca ca acceptată.)


Soluție:

Cu toate acestea, eu folosesc următoarea soluție de hack:

I-am dat elementului meu un id și execut acest JS:

turnOffAutocomplete : function(component) { var input = document.getElementById("id-of-the-input"); if(input.getAttribute("autocomplete") !== "off"){ input.setAttribute("autocomplete","off"); } } 

Îl execut nu în init (deoarece acesta se execută înainte ca elementele să fie redate), ci în schimb când elementul de intrare este focalizat.

Orice comentarii pentru a îmbunătăți acest lucru (așa că nu „nu trebuie să executați de fiecare dată când intrarea este focalizată, de exemplu) ar fi apreciată.

Comentarii

  • Mutați această logică în render.

Răspundeți

Singura soluție pe care am găsit-o a fost să utilizați un textArea cu rânduri = „1”

<textarea type="text" class="slds-input" rows="1" style="resize : none;" /> 

Puteți adăuga câteva clase slds pentru a avea același afișaj ca o intrare normală.

Răspuns

Puteți încerca acest lucru a lucrat pentru mine folosind aura: id și apoi a oprit „completarea automată”. Puteți utiliza în metoda init a controlerului de iluminat

component.find("fieldSelect").set("v.autocomplete","off"); 

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *