当使用xhtml1-transitional。使用以下HTML收集一个信用卡号
<input type="text" id="cardNumber" name="cardNumber" autocomplete='off'/>
将在W3C验证器上标记一个警告:
没有“自动完成”属性。
是否有一种符合标准的方法来禁用浏览器自动完成表单中的敏感字段?
当使用xhtml1-transitional。使用以下HTML收集一个信用卡号
<input type="text" id="cardNumber" name="cardNumber" autocomplete='off'/>
将在W3C验证器上标记一个警告:
没有“自动完成”属性。
是否有一种符合标准的方法来禁用浏览器自动完成表单中的敏感字段?
当前回答
有效的自动补全
<script type="text/javascript">
/* <![CDATA[ */
document.write('<input type="text" id="cardNumber" name="cardNumber" autocom'+'plete="off"/>');
/* ]]> */
</script>
其他回答
不理想,但你可以改变id和文本框的名称,每次你渲染它-你必须跟踪它的服务器端,这样你就可以得到数据。
不确定这是否会起作用,这只是一个想法。
有效的自动补全
<script type="text/javascript">
/* <![CDATA[ */
document.write('<input type="text" id="cardNumber" name="cardNumber" autocom'+'plete="off"/>');
/* ]]> */
</script>
我认为有一个更简单的方法。 用一个随机的名字(通过javascript)创建一个隐藏的输入,并设置用户名。重复输入密码。这样,您的后端脚本就可以确切地知道适当的字段名称是什么,同时保持自动补全在黑暗中。
我可能错了,但这只是个想法。
不,在Mozila Wiki上有一篇好文章。
我将继续使用无效属性。我认为这就是实用主义应该战胜认可的地方。
Note that there's some confusion about location of the autocomplete attribute. It can be applied either to the whole FORM tag or to individual INPUT tags, and this wasn't really standardized before HTML5 (that explicitly allows both locations). Older docs most notably this Mozilla article only mentions FORM tag. At the same time some security scanners will only look for autocomplete in INPUT tag and complain if it's missing (even if it is in the parent FORM). A more detailed analysis of this mess is posted here: Confusion over AUTOCOMPLETE=OFF attributes in HTML forms.