Sådan indstilles autocomplete = “ fra ” i lynform

Problemet

Jeg prøver at indstille HTML-attributten auto-complete="off" på et inputelement med klassen slds-input. Af en eller anden grund konverterer skabelonen altid dette til autocomplete="true" under gengivelse.

Jeg har oprettet et brugerdefineret søgefelt for at søge efter sObjects, og derfor er browserens autofuldførelsesadfærd åbenlyst nyttigt, og hvis dette var almindelig html, kunne jeg bare medtage autocomplete -attributten med værdien off, men aura ser ikke ud til lad mig.

Et svar, jeg fandt, foreslog at bruge html-autocomplete="off", så jeg prøvede det også, og når jeg gør det, er attributten simpelthen ikke gengivet.

Hvad jeg har prøvet

  • Jeg forsøgte at inkludere autocomplete="off" og html-autocomplete="off" i inputtagget
  • Jeg forsøgte at inkludere autocomplette="off" og html-autocomplete="off" i formtagget, der omgiver input-tagget
  • Jeg forsøgte at justere aria-autocomplete -værdien (det gjorde intet, ikke det jeg virkelig forventede, men jeg ville i det mindste prøve).
  • I denne PDF af aura docs html-attributten autocomplete er ikke nævnt.
  • Jeg har fundet en liste med understøttede HTML-tags i aura , men ingen liste over understøttede attributter
  • Jeg kan ikke finde noget om denne adfærd i lyndokumenterne, og det er meget vanskeligt at google for på grund af det autofuldførte lyn / aura-element

Er der nogen måde at gøre dette på? Eller dokumentation om denne adfærd?

Kodeeksempel:

Dette:

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

kommer ud i finalen HTML som denne:

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

Kommentarer

  • Hvad ' s forhindrer dig i at bruge almindelig html-input? Kunne du tilføje noget kode til markeringen for at hjælpe med at reproducere.
  • hvad ' stopper mig, er den måde aura (eller måske lyn) ændrer koden på. Mere kode tilføjet
  • Jeg bruger autocomplete = " adgangskode " i stedet for off / on, som krom respekterer det. Chrome ignorerer typisk ellers autofuldførelse. Giv det et skud og se om det fungerer for dig

Svar

Muligt fra og med foråret 19. Se her

autofuldførelse – Kontrollerer autofyldning af feltet. Denne attribut understøttes til e-mail-, søg-, tel-, tekst- og url-inputtyper. Værdierne til og fra understøttes, men autofyldsadfærden afhænger af browseren. Når du indstiller attributten autofuldførelse, sender lynkomponenten den værdi, der skal fortolkes af browseren.

Svar

Jeg talte lige med support hos Salesforce, og det er tilsyneladende umuligt i øjeblikket.

(Jeg efterlader mit svar her ikke som det accepterede svar, fordi jeg vil have nogen til at finde dette spørgsmål, når der er en bedre mulighed og besvare det, og jeg markerer dem som accepteret.)


Løsning:

Imidlertid bruger følgende hack-løsning:

Jeg gav mit element et id og udfør denne JS:

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

Jeg udfører det ikke i init (fordi det udføres før elementerne er gengivet), men i stedet når inputelementet er fokuseret.

Eventuelle kommentarer til forbedring af dette (så det ikke “t skal udføres hver gang input f.eks. er fokuseret) ville blive værdsat.

Kommentarer

  • Flyt denne logik ind i rendereren.

Svar

Den eneste løsning, jeg fandt, var at brug en textArea med rækker = “1”

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

Du kan tilføje nogle slds klasser for at have samme visning som en normal input.

Svar

Du kan prøve dette det “s arbejdet for mig ved hjælp af aura: id og derefter slå “autofuldførelse” fra. Du kan bruge i lysmetodens init-metode

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *