最近我遇到了一个问题,希望可以在所有浏览器中禁用自动完成功能。
Chrome浏览器有一个新的设置功能,你可以添加卡号,但是要求也需要禁用自动完成功能。
在所有浏览器中可行的方法是在表单级别上做 autocomplete=false
。
但是这不符合w3规则,他们强制要求使用 autocomplete=off|on
。
请问有谁能解释一下为什么 false
在所有浏览器中都能工作?
即使是ie8、所有火狐浏览器、safari等,但它并不符合规范。
最近我遇到了一个问题,希望可以在所有浏览器中禁用自动完成功能。
Chrome浏览器有一个新的设置功能,你可以添加卡号,但是要求也需要禁用自动完成功能。
在所有浏览器中可行的方法是在表单级别上做 autocomplete=false
。
但是这不符合w3规则,他们强制要求使用 autocomplete=off|on
。
请问有谁能解释一下为什么 false
在所有浏览器中都能工作?
即使是ie8、所有火狐浏览器、safari等,但它并不符合规范。
autocomplete="none" 对于 AngularJS 和 Angular 7 完美适用。
使用jQuery的解决方案不是完美但可行
$(document).ready(function(){
if (navigator.userAgent.indexOf("Chrome") != -1) {
$("#selector").attr("autocomplete", "nope"); // to disable auto complete on chrome
}
})
将自动完成属性设置为true|false或on|off在所有情况下都不起作用。即使您尝试使用占位符,它也不起作用。
我尝试使用autocomplete="no"来避免Chrome自动填充插件。
这个autocomplete="no"应该写在一个输入行内,例如
$("input:-internal-autofill-selected").val('');
原生JS版本:
document.querySelectorAll("input:-internal-autofill-selected").forEach(function(item){item.value = '';})
-internal-autofill-selected
(这也会使输入框具有浅蓝色背景)。我们可以使用此伪元素作为选择器,以便撤消Chrome的自动完成/自动填充。autocomplete="one-time-code"
对我有用。
如果您在2023年仍然在寻找答案,请尝试此方法,因为我用它解决了问题。我添加了一个带有autocomplete=false
的隐藏输入。
<input autocomplete="false" name="hidden" type="text" style="display:none;">