通过CSS禁用自动完成
是否有可能使用CSS来禁用窗体元素(特别是文本框)的自动完成?
我使用不允许autocomplete元素的标签库,我想禁用自动完成,而不使用JavaScript。
您可以每次使用生成的id
和name
,这是不同的,所以浏览器不记得这个文本字段,并将不能提示一些值。
这是至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');