Sre*_*ree 37
谢谢你回复我.我按照以下链接
我解决了这个问题,只需在输入中添加readonly&onfocus="this.removeAttribute('readonly');"属性autocomplete="off",如下所示.
<input type="text" name="UserName" autocomplete="off" readonly
onfocus="this.removeAttribute('readonly');" >
<input type="password" name="Password" autocomplete="off" readonly
onfocus="this.removeAttribute('readonly');" >
Run Code Online (Sandbox Code Playgroud)
这对我来说很好.
4ca*_*tle 32
这在现代浏览器中是不可能的,并且有充分的理由.现代浏览器提供密码管理器,使用户能够使用比通常更强的密码.
正如MDN所解释的:如何关闭表单自动完成:
现代浏览器实现集成的密码管理:当用户输入站点的用户名和密码时,浏览器会为用户记住它.当用户再次访问该站点时,浏览器会使用存储的值自动填充登录字段.
此外,浏览器允许用户选择浏览器将用于加密存储的登录详细信息的主密码.
即使没有主密码,浏览器内的密码管理通常被视为安全性的净收益.由于用户不必记住浏览器为其存储的密码,因此他们可以选择比其他方式更强的密码.
因此,许多现代浏览器不支持
autocomplete="off"登录字段:
如果网站
autocomplete="off"为表单设置,并且表单包含用户名和密码输入字段,则浏览器仍然会提供记住此登录的信息,如果用户同意,浏览器将在下次用户访问该页面时自动填充这些字段.如果网站设置
autocomplete="off"了用户名和密码输入字段,则浏览器仍然会提供记住此登录信息,如果用户同意,浏览器将在下次用户访问该页面时自动填充这些字段.这是Firefox(自版本38以来),Google Chrome(自34版本)和Internet Explorer(自版本11以来)以来的行为.
如果作者想要阻止用户管理页面中的密码字段的自动填充,用户可以为其他人指定新密码,则
autocomplete="new-password"应该指定,但是尚未在所有浏览器中实现对此的支持.
小智 15
我通过添加autocomplete="one-time-code"密码输入解决了这个问题。
根据HTML 参考 autocomplete="one-time-code"- 用于验证用户身份的一次性代码。它看起来最适合这个。
Sim*_*ggs 13
您应该能够制作一个假的隐藏密码框来防止它。
<form>
<div style="display:none">
<input type="password" tabindex="-1"/>
</div>
<input type="text" name="username" placeholder="username"/>
<input type="password" name="password" placeholder="password"/>
</form>Run Code Online (Sandbox Code Playgroud)
这是针对Chrome的纯HTML / CSS解决方案,已在65.0.3325.162版(正式版本)(64位)中进行了测试。
设置输入type="text"并使用CSS text-security:disc进行模仿type="password"。
<input type="text" name="username">
<input type="text" name="password" style="text-security:disc; -webkit-text-security:disc;">
Run Code Online (Sandbox Code Playgroud)
注意:可在FireFox中使用,但CSS moz-text-security已过时/已删除。要解决此问题,请创建仅由点组成的CSS font-face并使用font-family: 'dotsfont';。
上面的源代码包含指向CSS moz-text-security和-webkit-text-security属性的变通办法的链接。
据我测试,此解决方案适用于Chrome,FireFox 59.0版本(64位),IE版本11.0.9600以及IE仿真器ie5及更高版本。
小智 7
默认情况下,没有任何正确的答案可以禁用在浏览器中保存密码。但幸运的是,有一种解决方法,它几乎适用于所有浏览器。
为了实现这一点,在实际输入之前添加一个虚拟输入,使用 autocomplete="off" 和一些自定义样式来隐藏它并提供 tabIndex。
某些浏览器 (Chrome) 的自动完成功能会填写它找到的第一个密码输入,以及之前的输入,因此使用此技巧,它只会填写无关紧要的不可见输入。
<div className="password-input">
<input
type="password"
id="prevent_autofill"
autoComplete="off"
style={{
opacity: '0',
position: 'absolute',
height: '0',
width: '0',
padding: '0',
margin: '0'
}}
tabIndex="-2"
/>
<input
type="password"
autoComplete="off"
className="password-input-box"
placeholder="Password"
onChange={e => this.handleChange(e, 'password')}
/>
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62950 次 |
| 最近记录: |