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"
oghtml-autocomplete="off"
i inngangskoden - Jeg prøvde å inkludere
autocomplette="off"
oghtml-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");