Slik setter du autofullføring = “ av ” i lynform

Problemet

Jeg prøver å sette HTML-attributtet auto-complete="off" på et inngangselement med klassen slds-input. Av en eller annen grunn konverterer malen alltid dette til autocomplete="true" under gjengivelse.

Jeg har opprettet et tilpasset søkefelt for å søke etter sObjects, og slik er nettleserens autofullføringsadferd åpenbart lite nyttig, og hvis dette var vanlig html, kunne jeg bare inkludere autocomplete -attributtet med verdien off, men aura ser ikke ut til å la meg.

Ett svar jeg fant foreslo å bruke html-autocomplete="off", så jeg prøvde det også, og når jeg gjør det, blir attributtet ganske enkelt ikke gjengitt.

Det jeg har prøvd

  • Jeg prøvde å inkludere autocomplete="off" og html-autocomplete="off" i inngangskoden
  • Jeg prøvde å inkludere autocomplette="off" og html-autocomplete="off" i skjemikoden som omgir inngangskoden
  • Jeg prøvde å justere aria-autocomplete -verdien (det gjorde ingenting, ikke det jeg virkelig forventet det, men jeg ville i det minste prøve).
  • I denne PDF-filen av aura-dokumentene html-attributtet autocomplete er ikke nevnt.
  • Jeg har funnet en liste over støttede HTML-koder i aura , men ingen liste over attributter som støttes
  • Jeg kan ikke finne noe om denne oppførselen i lyndokumentene, og det er veldig vanskelig å google for på grunn av autofullfør lyn / aura-element

Er det noen måte å gjøre dette på? Eller dokumentasjon om denne oppførselen?

Kodeeksempel:

Dette:

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

kommer ut i finalen HTML som dette:

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

Kommentarer

  • Hva ' s hindrer deg i å bruke vanlig html-inngang? Kan du legge til litt kode i markeringen for å reprodusere.
  • det ' som stopper meg, er måten aura (eller kanskje lyn) endrer koden på. Mer kode lagt til
  • Jeg bruker autocomplete = " passord " i stedet for av / på slik krom respekterer det. Chrome ignorerer vanligvis autofullføring ellers. Gi det et skudd og se om det fungerer for deg

Svar

Mulig fra og med våren 19. Se her

autofullføring – Kontrollerer autofylling av feltet. Dette attributtet støttes for e-post-, søk-, tel-, tekst- og url-inngangstyper. Verdiene på og av støttes, men oppførselen til autofyll avhenger av nettleseren. Når du setter attributtet autofullføring, sender komponenten lyn: inngang verdien som skal tolkes av nettleseren.

Svar

Jeg har nettopp snakket med støtte hos Salesforce, og tilsynelatende er dette for øyeblikket umulig.

(Jeg lar ikke svaret her være som det aksepterte svaret fordi jeg vil at noen skal finne dette spørsmålet når det er et bedre alternativ og svare på det, og jeg vil merke dem som akseptert.)


Løsning:

Imidlertid bruker følgende hack-løsning:

Jeg ga elementet mitt en id, og utfører denne JS:

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

Jeg utfører den ikke i init (fordi det utføres før elementene har gjengitt), men i stedet når inngangselementet er fokusert.

Eventuelle kommentarer for å forbedre dette (så det gjør det ikke «t må utføres hver gang inngangen er fokusert, for eksempel) vil bli verdsatt.

Kommentarer

  • Flytt denne logikken til gjengiveren.

Svar

Den eneste løsningen jeg fant var å bruk en textArea med rader = «1»

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

Du kan legge til noen slds klasser for å få samme visning som en normal inngang.

Svar

Du kan prøve dette det er jobbet for meg gjennom å bruke aura: id og deretter sette «autofullføring» av. Du kan bruke i init-metoden til lyskontrolleren

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *