Leider haben keine der hier vorhandenen Optionen (Autocomplete, data-lpignore usw.) verhindert, dass LastPass meine Formularfelder automatisch ausfüllt. Ich habe mich daher einem eher drastischen Ansatz des Problems angenommen und die Eingabeattributen name
stattdessen über JavaScript asynchron gesetzt. Die folgende jQuery-abhängige Funktion (die vom Ereignishandler onsubmit des Formulars aufgerufen wird) hat ihren Zweck erfüllt:
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);
Im Formular habe ich einfach tmp-name
Attribute anstelle der entsprechenden name
Attribute verwendet. Beispiel:
Aktualisierung 2019-03-20
Ich bin immer noch auf Schwierigkeiten gestoßen aufgrund von AngularJS, das darauf angewiesen ist, dass Formularfelder name
Attribute haben, damit ngMessages Fehlermeldungen für die Feldvalidierung korrekt anzeigen kann.
Letztendlich war die einzige Lösung, die ich finden konnte, um zu verhindern, dass LastPass Passwortfelder auf meinem Passwortänderungsformular ausfüllt, folgende:
- Vermeiden Sie es,
input[type=password]
zu verwenden, UND
- haben Sie nicht 'password' im Feldnamen
Da ich in meinem Fall das Formular normal senden können muss, habe ich immer noch meine ursprüngliche Lösung angewendet, um die Feldnamen 'im letzten Moment' zu aktualisieren. Um die Verwendung von Passworteingabefeldern zu vermeiden, habe ich festgestellt, dass diese Lösung sehr gut funktioniert hat.