Keine der Optionen hier (Autocomplete, Data-Lpignore usw.) hat LastPass leider daran gehindert, meine Formularfelder automatisch auszufüllen. Ich habe das Problem mit einem Vorschlaghammer angegangen und die Eingabeattribute name
stattdessen asynchron über JavaScript festgelegt. Die folgende jQuery-abhängige Funktion (die vom onsubmit-Ereignishandler des Formulars aufgerufen wird) hat den Trick ausgeführt:
function setInputNames() {
$('#myForm input').each(function(idx, el) {
el = $(el);
if (el.attr('tmp-name')) {
el.attr('name', el.attr('tmp-name'));
}
});
}
$('#myForm').submit(setInputNames);
In dem Formular habe ich einfach tmp-name
Attribute anstelle der entsprechenden name
Attribute verwendet. Beispiel:
<form id="myForm" method="post" action="/someUrl">
<input name="username" type="text">
<input tmp-name="password" type="password">
</form>
Update 2019-03-20
Ich hatte immer noch Schwierigkeiten mit dem oben genannten wegen AngularJS, abhängig von den Formularfeldern mit name
Gesagten, Attributen, damit ngMessages Fehlermeldungen zur Feldvalidierung korrekt anzeigt.
Die einzige Lösung, die ich finden konnte, um zu verhindern, dass LastPass Kennwortfelder in meinem Kennwortänderungsformular ausfüllt, war:
- Vermeiden Sie die
input[type=password]
vollständige Verwendung von AND
- kein 'Passwort' im Feldnamen zu haben
Da ich das Formular in meinem Fall normalerweise einreichen muss, habe ich meine ursprüngliche Lösung verwendet, um die Feldnamen "just in time" zu aktualisieren. Um die Verwendung von Passworteingabefeldern zu vermeiden, fand ich, dass diese Lösung sehr gut funktioniert.
type="hidden"
es