当使用xhtml1-transitional。使用以下HTML收集一个信用卡号

<input type="text" id="cardNumber" name="cardNumber" autocomplete='off'/>

将在W3C验证器上标记一个警告:

没有“自动完成”属性。

是否有一种符合标准的方法来禁用浏览器自动完成表单中的敏感字段?


当前回答

我认为有一个更简单的方法。 用一个随机的名字(通过javascript)创建一个隐藏的输入,并设置用户名。重复输入密码。这样,您的后端脚本就可以确切地知道适当的字段名称是什么,同时保持自动补全在黑暗中。

我可能错了,但这只是个想法。

其他回答

如果你使用jQuery,你可以这样做:

$(document).ready(function(){$("input.autocompleteOff").attr("autocomplete","off");});

并在你想要的地方使用autocompleteOff类:

<input type="text" name="fieldName" id="fieldId" class="firstCSSClass otherCSSClass autocompleteOff" />

如果你想要所有的输入都是autocomplete=off,你可以简单地使用:

$(document).ready(function(){$("input").attr("autocomplete","off");});

这个解决方案对我很管用:

$('form,input,select,textarea').attr("autocomplete", "nope");

如果你想在这个区域使用自动填充:在元素中添加autocomplete="false" 例:

<input id="search" name="search" type="text" placeholder="Name or Code" autcomplete="false">

我在2020年就做到了!

我基本上创建了一个css类,对我的输入应用-webkit-text-security。

这里有一个最近讨论的链接: https://stackoverflow.com/a/64471795/8754782

有效的自动补全

<script type="text/javascript">
    /* <![CDATA[ */
    document.write('<input type="text" id="cardNumber" name="cardNumber" autocom'+'plete="off"/>');
    /* ]]> */ 
</script>

我认为有一个更简单的方法。 用一个随机的名字(通过javascript)创建一个隐藏的输入,并设置用户名。重复输入密码。这样,您的后端脚本就可以确切地知道适当的字段名称是什么,同时保持自动补全在黑暗中。

我可能错了,但这只是个想法。