Tak satu pun dari opsi di sini (pelengkapan otomatis, data-lpignore, dll.) Yang mencegah LastPass mengisi otomatis bidang formulir saya. Saya mengambil pendekatan yang lebih palu palu untuk masalah dan name
sebagai gantinya mengatur atribut input secara asinkron melalui JavaScript. Fungsi dependen-jQuery berikut (dipanggil dari event handler onsubmit formulir) melakukan triknya:
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);
Dalam formulir, saya hanya menggunakan tmp-name
atribut sebagai pengganti name
atribut yang setara . Contoh:
<form id="myForm" method="post" action="/someUrl">
<input name="username" type="text">
<input tmp-name="password" type="password">
</form>
Perbarui 2019-03-20
Saya masih mengalami kesulitan dengan hal di atas karena AngularJS tergantung pada kolom formulir yang memiliki name
atribut agar ngMessages menampilkan pesan kesalahan validasi kolom dengan benar.
Pada akhirnya, satu-satunya solusi yang dapat saya temukan untuk mencegah LastPass mengisi bidang kata sandi pada formulir Perubahan Kata Sandi saya adalah dengan:
- Hindari penggunaan
input[type=password]
seluruhnya, DAN
- untuk tidak memiliki 'password' di nama field
Karena saya harus dapat mengirimkan formulir secara normal dalam kasus saya, saya masih menggunakan solusi asli saya untuk memperbarui nama bidang 'tepat waktu'. Untuk menghindari penggunaan kolom masukan kata sandi, saya menemukan solusi ini bekerja dengan sangat baik.
type="hidden"
daripada menyembunyikannya dengan CSS