不幸的是,这里的所有选项(自动完成,数据lpignore等)都不能阻止LastPass自动填充我的表单字段。我对这个问题采取了更加大刀阔斧的方法,name
而是通过JavaScript 异步设置了输入属性。下面的jQuery依赖函数(从表单的onsubmit事件处理程序调用)可以解决问题:
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);
在表单中,我仅使用tmp-name
属性代替等效name
属性。例:
<form id="myForm" method="post" action="/someUrl">
<input name="username" type="text">
<input tmp-name="password" type="password">
</form>
更新2019-03-20
由于AngularJS依赖于具有name
属性的表单字段,因此我仍然遇到上述困难,以便ngMessages正确显示字段验证错误消息。
最终,我发现无法阻止LastPass在“密码更改”表单上填写密码字段的唯一解决方案是:
- 避免
input[type=password]
完全使用AND
- 字段名称中没有“ password”
由于我需要能够正常提交表单,因此我仍然采用原始解决方案来“及时”更新字段名称。为了避免使用密码输入字段,我发现此解决方案非常有效。
type="hidden"
而不是使用CSS隐藏它