通过CSS禁用自动完成

是否有可能使用CSS来禁用窗体元素(特别是文本框)的自动完成?

我使用不允许autocomplete元素的标签库,我想禁用自动完成,而不使用JavaScript。

您可以每次使用生成的idname ,这是不同的,所以浏览器不记得这个文本字段,并将不能提示一些值。

这是至less跨浏览器安全的select,但我会build议去从RobertsonM( autocomplete="off" )的答案。

就目前而言,CSS中没有“自动完成closures”属性。 但是,html有一个简单的代码:

 <input type="text" id="foo" value="bar" autocomplete="off" /> 

如果你正在寻找一个网站的效应器,一个简单的方法就是只需要一个js函数来运行所有的input,并添加这个标签,或者查找相应的css class / id。

autocomplete属性在Chrome和Firefox(!)中工作正常,但请参阅W3C有效的方法来禁用HTML表单中的自动完成吗?

你可以很容易地通过jQuery实现

 $('input').attr('autocomplete','off'); 

CSS没有这个能力。 您将需要使用客户端脚本。

如果您使用form ,则可以禁用所有自动完成function,

 <form id="Form1" runat="server" autocomplete="off"> 

感谢@ ahhmarr的解决scheme,我能够在我的Angular + ui-router环境中解决同样的问题,我将在这里分享给任何感兴趣的人。

在我的index.html我添加了以下脚本:

 <script type="text/javascript"> setTimeout(function() { $('input').attr('autocomplete', 'off'); }, 2000); </script> 

然后,为了覆盖状态更改,我在根控制器中添加了以下内容:

 $rootScope.$on('$stateChangeStart', function() { $timeout(function () { $('input').attr('autocomplete', 'off'); }, 2000); }); 

超时是HTML应用jQuery之前呈现。

如果你find更好的解决scheme,请让我知道。

 $('input').attr('autocomplete','off');