Không có tùy chọn nào ở đây (tự động hoàn thành, dữ liệu lpignore, v.v.) đã ngăn LastPass tự động điền vào các trường mẫu của tôi một cách đáng tiếc. Tôi đã sử dụng một cách tiếp cận búa tạ nhiều hơn cho vấn đề và name
thay vào đó đặt không đồng bộ các thuộc tính đầu vào thông qua JavaScript. Hàm phụ thuộc jQuery sau đây (được gọi từ trình xử lý sự kiện onsubmit của biểu mẫu) đã thực hiện thủ thuật:
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);
Trong biểu mẫu, tôi chỉ đơn giản sử dụng tmp-name
các thuộc tính thay cho các name
thuộc tính tương đương . Thí dụ:
<form id="myForm" method="post" action="/someUrl">
<input name="username" type="text">
<input tmp-name="password" type="password">
</form>
Cập nhật 2019-03-20
Tôi vẫn gặp khó khăn với tài khoản trên của AngularJS tùy thuộc vào các trường mẫu có name
thuộc tính để ngMessages trình bày chính xác các thông báo lỗi xác thực trường.
Cuối cùng, giải pháp duy nhất tôi có thể tìm thấy để ngăn các trường mật khẩu điền vào LastPass trên biểu mẫu Thay đổi mật khẩu của mình là:
- Tránh sử dụng
input[type=password]
hoàn toàn, VÀ
- để không có 'mật khẩu' trong tên trường
Vì tôi cần có thể gửi biểu mẫu bình thường trong trường hợp của mình, tôi vẫn sử dụng giải pháp ban đầu của mình để cập nhật tên trường 'chỉ trong thời gian'. Để tránh sử dụng các trường nhập mật khẩu, tôi thấy giải pháp này hoạt động rất độc đáo.
type="hidden"
thay vì ẩn nó bằng CSS