我该如何使它渲染?
<input
id={field.name}
className="form-control"
type="text"
placeholder={field.name}
autocomplete="off"
{...field}/>
Answers:
大写字母“ C” autoComplete
。在React文档中提到了这一点:
https://facebook.github.io/react/docs/tags-and-attributes.html
您应该输入:
autoComplete="new-password"
这将删除自动完成功能
new
名称中的。我现在给它命名,autoComplete="new-off"
这对我来说更有意义,如果它不是密码字段并且可以正常使用:D
根据Mozilla文档,必须设置一个无效值才能真正关闭自动补全功能。在某些浏览器中,即使该属性设置为off,仍会给出自动完成建议。
这对我有用(react-bootstrap):
<FormControl
value={this.state.value}
autoComplete="nope"
{...props}
/>
autocomplete
和autofill
?因为使用Chrome不适用于我。它将使用通过同一表单发送的先前值来自动填充表单。
如果您已阅读正确答案,但仍然遇到此问题(尤其是在Chrome中),欢迎加入俱乐部...因此,请检查我是如何做到的:
<form autoComplete="new-password" ... >
<input name="myInput" type="text" autoComplete="off" id="myInput" placeholder="Search field" />
</form>
笔记
<FormControl/>
标签一起使用(而不是<input/>
)这些解决方案都无法在Chrome 80上真正起作用。
经过数小时的反复试验,这个非常奇怪的技巧对我有用:
autoComplete="none"
到每个<input>
-Google现在跳过autocomplete =“ off”<form>
或<div>
autoComplete="on"
。这应该是容器中的最后一个元素。因此,我在表单底部添加了以下输入字段:<input
type="text"
autoComplete="on"
value=""
style={{display: 'none', opacity: 0, position: 'absolute', left: '-100000px'}}
readOnly={true}
/>
Chrome自动完成功能会通过添加new-password属性来关闭。
autoComplete="new-password"
实际操作如下:
<input
type="password"
autoComplete="new-password"
/>
有关以下内容的更多讨论:
这是“它可以在我的机器上运行”
Chrome版本83.0.4103.116和React。看来对我有用的技巧是将其放入表单中并添加autoComplete属性。注意如果在非反应性应用程序上尝试此操作,则必须使用小写C来自动完成
<form autoComplete="off">
<input type="text" autoComplete="new-password" />
</form>
和
<form autoComplete="new-password">
<input type="text" autoComplete="new-password" />
</form>