So setzen Sie autocomplete = “ aus ” in Blitzform

Das Problem

Ich versuche, das HTML-Attribut auto-complete="off" für ein Eingabeelement mit der Klasse slds-input festzulegen. Aus irgendeinem Grund konvertiert die Vorlage dies beim Rendern immer in autocomplete="true".

Ich habe ein benutzerdefiniertes Suchfeld für die Suche nach sObjects erstellt, sodass das Verhalten der automatischen Vervollständigung des Browsers so ist offensichtlich nicht hilfreich, und wenn dies normales HTML wäre, könnte ich einfach das Attribut autocomplete mit dem Wert off einfügen, aber die Aura scheint es nicht zu tun Lassen Sie mich.

Eine Antwort, die ich gefunden habe, schlug vor, html-autocomplete="off" zu verwenden, also habe ich das auch versucht, und wenn ich das tue, wird das Attribut einfach überhaupt nicht gerendert.

Was ich versucht habe

  • Ich habe versucht, autocomplete="off" und html-autocomplete="off" einzuschließen Im Eingabe-Tag
  • habe ich versucht, autocomplette="off" und html-autocomplete="off" in das Formular-Tag aufzunehmen, das das Eingabe-Tag
  • Ich habe versucht, den Wert aria-autocomplete anzupassen (das hat nichts bewirkt, nicht das, was ich wirklich erwartet hatte, aber ich wollte es zumindest versuchen).
  • In Dieses PDF der Aura-Dokumente Das HTML-Attribut autocomplete wird nicht erwähnt.
  • Ich habe eine Liste von unterstützte HTML-Tags in Aura , aber keine Liste der unterstützten Attribute
  • Ich kann in den Lightning-Dokumenten nichts über dieses Verhalten finden, und es ist sehr schwierig wegen des Autocomplete-Blitz- / Aura-Elements googeln

Gibt es eine Möglichkeit, dies zu tun? Oder Dokumentation zu diesem Verhalten?

Codebeispiel:

Dies:

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

wird im Finale veröffentlicht HTML wie folgt:

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

Kommentare

  • Was ' s hindert Sie daran, reguläre HTML-Eingaben zu verwenden? Könnten Sie dem Markup Code hinzufügen, um die Reproduktion zu erleichtern?
  • Was ' mich daran hindert, ist die Art und Weise, wie Aura (oder vielleicht ein Blitz) den Code ändert. Mehr Code hinzugefügt
  • Ich verwende autocomplete = " Passwort " anstelle von off / on, da Chrome dies respektiert. Chrome ignoriert normalerweise die automatische Vervollständigung. Probieren Sie es aus und prüfen Sie, ob es für Sie funktioniert.

Antwort

Ab Frühjahr 19 möglich. Siehe hier

Autocomplete – Steuert das automatische Ausfüllen des Felds. Dieses Attribut wird für E-Mail-, Such-, Tel-, Text- und URL-Eingabetypen unterstützt. Die Werte Ein und Aus werden unterstützt, das Verhalten beim automatischen Ausfüllen hängt jedoch vom Browser ab. Wenn Sie das Autocomplete-Attribut festlegen, leitet die Lightning: -Eingabekomponente den vom Browser zu interpretierenden Wert weiter.

Antwort

Ich habe gerade mit dem Support von Salesforce gesprochen und anscheinend ist dies derzeit nicht möglich.

(Ich lasse meine Antwort hier nicht als akzeptierte Antwort, weil ich Ich möchte, dass jemand diese Frage findet, wenn es eine bessere Option gibt, und sie beantworte. Ich werde sie als akzeptiert markieren.)


Problemumgehung:

Ich jedoch Ich verwende die folgende Hack-Problemumgehung:

Ich habe meinem Element eine ID gegeben und diese JS ausgeführt:

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

Ich führe sie aus Nicht in init (da dies ausgeführt wird, bevor die Elemente gerendert wurden), sondern in dem Moment, in dem das Eingabeelement fokussiert ist.

Alle Kommentare, um dies zu verbessern (also nicht „Ich muss zum Beispiel nicht jedes Mal ausführen, wenn die Eingabe fokussiert ist.)

Kommentare

  • Verschieben Sie diese Logik in den Renderer.

Antwort

Die einzige Lösung, die ich gefunden habe, war: Verwenden Sie eine textArea mit Zeilen = „1“

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

Sie können einige slds -Klassen hinzufügen, um dieselbe Anzeige wie zu haben eine normale Eingabe.

Antwort

Sie können dies versuchen arbeitete für mich durch die Verwendung der Aura: ID und setzte dann „Autocomplete“ aus. Sie können in der init-Methode der Beleuchtungssteuerung

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

verwenden

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.