有没有W3C有效的方式来禁用HTML表单中的自动完成?

使用xhtml1-transitional.dtd文档类型时,使用以下HTML收集信用卡号码

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

将在W3C验证器上发出警告:

没有属性“自动完成”。

是否有W3C /标准的方式来禁用浏览器在表单中的敏感字段上自动完成?


这是MDC的一篇很好的文章,它解释了形成自动完成的问题(和解决方案)。 微软也在这里发布了类似的内容。

说实话,如果这对用户来说很重要,那么以这种方式“打破”标准似乎是适当的。 例如,亚马逊使用'autocomplete'属性相当多,它似乎运作良好。

如果要完全删除警告,可以使用JavaScript将属性应用于支持它的浏览器(IE和Firefox是重要的浏览器),方法是使用someForm.setAttribute( "autocomplete", "off" ); someFormElm.setAttribute( "autocomplete", "off" ); someForm.setAttribute( "autocomplete", "off" ); someFormElm.setAttribute( "autocomplete", "off" );

最后,如果您的网站使用HTTPS,则IE会自动关闭自动完成功能(就我所知,其他浏览器也一样)。

更新

由于这个答案仍然有不少赞扬,我只想指出,在HTML5中,你可以在你的表单元素上使用'autocomplete'属性。 请参阅W3C上的文档。


如果W3C会提出一种可以与(X)HTML4一起使用的方法,我会非常惊讶。 自动完成功能完全基于浏览器,在过去的几年(在HTML4标准写完之后)被引入。

但是,如果HTML5会有一个,那么不会感到惊讶。

编辑:正如我的想法,HTML5 确实有这个功能。 要将页面定义为HTML5,请使用以下文档类型(即:将其作为源代码中的第一个文本)。 请注意,并非所有浏览器都支持此标准,因为它仍处于草稿状态。

<!DOCTYPE html>

HTML 4 :没有

HTML 5 :是的

autocomplete属性是一个枚举属性。 该属性有两个状态。 on关键字映射到on状态, off关键字映射到off状态。 该属性也可以省略。 缺少的值默认为打开状态。 关闭状态表示默认情况下,表单中的表单控件将其自动填充字段名称设置为关闭 ; on状态表示默认情况下,表单中的表单控件将其autofill字段名称设置为“on”。

参考:W3

链接地址: http://www.djcxy.com/p/4491.html

上一篇: Is there a W3C valid way to disable autocomplete in a HTML form?

下一篇: in like StackOverflow's input tags?