Answers:
尝试使用autocomplete="off"
。不过,不确定是否每个浏览器都支持它。MSDN文档在这里。
编辑:注意:大多数浏览器已放弃对此属性的支持。请参阅autocomplete =“ off”与所有现代浏览器兼容吗?
可以说,这应该由用户而不是网站设计者来决定。
<input type="password" autocomplete="off" />
我想补充一点,作为用户,我认为这很烦人并且需要克服。我强烈建议您不要使用此功能,因为它很可能会加重您的用户。
密码尚未存储在MRU中,并且正确配置的公用计算机甚至都不会保存用户名。
我用另一种方式解决了。你可以试试看
<input id="passfld" type="text" autocomplete="off" />
<script type="text/javascript">
// Using jQuery
$(function(){
setTimeout(function(){
$("input#passfld").attr("type","password");
},10);
});
// or in pure javascript
window.onload=function(){
setTimeout(function(){
document.getElementById('passfld').type = 'password';
},10);
}
</script>
#其他方式
<script type="text/javascript">
function setAutoCompleteOFF(tm){
if(typeof tm =="undefined"){tm=10;}
try{
var inputs=$(".auto-complete-off,input[autocomplete=off]");
setTimeout(function(){
inputs.each(function(){
var old_value=$(this).attr("value");
var thisobj=$(this);
setTimeout(function(){
thisobj.removeClass("auto-complete-off").addClass("auto-complete-off-processed");
thisobj.val(old_value);
},tm);
});
},tm);
}catch(e){}
}
$(function(){
setAutoCompleteOFF();
});
</script>
//您需要添加属性autocomplete =“ off”或将类.auto-complete-off添加到输入框中并享受
例:
<input id="passfld" type="password" autocomplete="off" />
OR
<input id="passfld" class="auto-complete-off" type="password" />
关于安全性问题,以下是安全顾问将在整个现场问题上告诉您的内容(这来自实际的独立安全性审计):
启用HTML自动完成功能– HTML表单中的密码字段已启用自动完成功能。大多数浏览器都具有记住输入HTML表单的用户凭据的功能。
相对风险:低
受影响的系统/设备:o https:// * ** * *** /
我也同意这应该涵盖任何包含真正私有数据的字段。我认为,只要该站点要访问应被安全保护的任何东西(普遍或法律合规要求),就可以强迫人们始终键入其信用卡信息,CVC代码,密码,用户名等。例如:购买表格,银行/信贷网站,税收网站,医疗数据,联邦,核电等- 而非 Stack Overflow或Facebook之类的网站。
其他类型的网站-例如用于上班和下班的TimeStar Online-这很愚蠢,因为我在工作中始终使用相同的PC /帐户,因此我无法在该网站上保存凭据-奇怪的是,我可以在Android上但不适用于iPad。即使是共享PC,这也不会太糟,因为为其他人输入/输出时钟实际上并不会做任何事情,只会惹恼您的主管。(他们必须删除错误的拳头-只是选择不保存在公用PC上)。
这是最好的答案,也是最简单的!在该字段的前面放置一个额外的密码字段input
并设置display:none
,以便浏览器填写该密码时,它会以input
您不需要关心的方式进行操作。
更改此:
<input type="password" name="password" size="25" class="input" id="password" value="">
对此:
<input type="password" style="display:none;">
<input type="password" name="password" size="25" class="input" id="password" value="">
display:none
不适用于我(Chrome 61 OSX),但确实可以:<input type="password" style="position: absolute; top: -1000px;">
您也可以像下面一样使用它
$('#Password').attr("autocomplete", "off");
setTimeout('$("#Password").val("");', 2000);
鉴于不建议使用autocomplete = off,我建议使用更新的解决方案。
将您的密码字段设置为普通文本字段,并使用CSS使用“ discs”屏蔽您的输入。代码应如下所示:
<input type="text" class="myPassword" />
input .myPassword{
text-security:disc;
-webkit-text-security:disc;
-mox-text-security:disc;
}
请注意,这可能不适用于Firefox浏览器,并且需要其他解决方法。在此处了解更多信息:https : //stackoverflow.com/a/49304708/5477548。
解决方案是从此链接中获取的,但是为了符合SO“无热链接”的要求,我在此处进行了总结。
我发现以下可在Firefox和Chrome上使用的作品。
<form ... > <!-- more stuff -->
<input name="person" type="text" size=30 value="">
<input name="mypswd" type="password" size=6 value="" autocomplete="off">
<input name="userid" type="text" value="security" style="display:none">
<input name="passwd" type="password" value="faker" style="display:none">
<!-- more stuff --> </form>
所有这些都在表格部分中。“ person”和“ mypswd”是您想要的,但是浏览器将一次保存“ userid”和“ passwd”,再也不会保存,因为它们不会更改。如果您确实不需要,可以取消“人员”字段。在这种情况下,您只需要“ mypswd”字段,该字段可能会以网页用户已知的某种方式发生变化。
我可以使Firefox,Edge和Internet Explorer关闭自动完成功能的唯一方法是在我的表单语句中添加autocomplete =“ false”,例如:
<form action="postingpage.php" autocomplete="false" method="post">
并且我必须在表单输入中添加autocomplete =“ off”并将类型更改为文本,例如:
<input type="text" autocomplete="off">
似乎该html代码需要与浏览器进行标准化。应当修改表单类型=密码,使其覆盖浏览器设置。我唯一的问题是我失去了输入掩码。但是从好的方面来说,恼人的“此站点不安全”没有出现在Firefox中。
对我来说,这没什么大不了的,因为用户已经通过身份验证,并且它是我的更改用户名和密码部分