Comment définir autocomplete = “ off ” sous forme éclair

Le problème

Jessaie de définir lattribut HTML auto-complete="off" sur un élément dentrée avec la classe slds-input. Pour une raison quelconque, le modèle le convertit toujours en autocomplete="true" dans le rendu.

Jai créé un champ de recherche personnalisé pour rechercher des sObjects, et le comportement de saisie semi-automatique du navigateur est donc évidemment inutile, et sil sagissait de HTML normal, je pourrais simplement inclure lattribut autocomplete avec la valeur off, mais laura ne semble pas laissez-moi.

Une réponse que jai trouvée suggérée dutiliser html-autocomplete="off", donc jai aussi essayé cela, et quand je fais cela, lattribut nest tout simplement pas rendu du tout.

Ce que jai essayé

  • Jai essayé dinclure autocomplete="off" et html-autocomplete="off" dans la balise dentrée
  • Jai essayé dinclure autocomplette="off" et html-autocomplete="off" dans la balise de formulaire entourant la balise dentrée
  • Jai essayé dajuster la valeur de aria-autocomplete (cela na rien fait, pas que je my attendais vraiment, mais je voulais au moins essayer).
  • Dans ce PDF de laura docs lattribut html autocomplete nest pas mentionné.
  • Jai trouvé une liste de balises HTML prises en charge dans aura , mais aucune liste des attributs pris en charge
  • Je ne trouve rien sur ce comportement dans la documentation Lightning, et cest très difficile rechercher sur Google à cause de lélément éclair / aura à saisie semi-automatique

Y a-t-il un moyen de le faire? Ou de la documentation sur ce comportement?

Exemple de code:

Ceci:

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

sortira dans la version finale HTML comme ceci:

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

Commentaires

  • What ' s vous empêche dutiliser une entrée html régulière? Pourriez-vous ajouter du code au balisage pour aider à reproduire.
  • ce que ' marrête est la façon dont laura (ou peut-être la foudre) modifie le code. Plus de code ajouté
  • Jutilise autocomplete = " password " au lieu de off / on car le chrome le respecte. Sinon, Chrome ignore généralement la saisie semi-automatique. Essayez-le et voyez si cela fonctionne pour vous

Réponse

Possible à partir du printemps 19. Voir ici

autocomplete – Contrôle le remplissage automatique du champ. Cet attribut est pris en charge pour les types dentrée e-mail, recherche, tel, texte et URL. Les valeurs activées et désactivées sont prises en charge, mais le comportement de la saisie automatique dépend du navigateur. Lorsque vous définissez lattribut de saisie semi-automatique, le composant lightning: input transmet la valeur à interpréter par le navigateur.

Réponse

Je viens de parler avec le support de Salesforce et apparemment cest actuellement impossible.

(Je laisse ma réponse ici non comme réponse acceptée car je Je veux que quelquun trouve cette question quand il y a une meilleure option et y réponde et je le marquerai comme accepté.)


Solution de contournement:

Cependant, je Jutilise la solution de contournement suivante:

Jai donné un identifiant à mon élément et jexécute ce JS:

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

Je « m lexécute pas dans init (car cela sexécute avant que les éléments ne soient rendus) mais à la place lorsque lélément dentrée est focalisé.

Tout commentaire pour améliorer cela (donc il ne « t avoir à exécuter chaque fois que lentrée est focalisée, par exemple) serait apprécié.

Commentaires

  • Déplacez cette logique dans le moteur de rendu.

Réponse

La seule solution que jai trouvée était de utiliser un textArea avec rows = « 1 »

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

Vous pouvez ajouter des classes slds pour avoir le même affichage que une entrée normale.

Réponse

Vous pouvez essayer ceci « s a fonctionné pour moi en utilisant laura: id, puis désactivez « autocomplete ». Vous pouvez utiliser dans la méthode init du contrôleur déclairage

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *