当 input 的 type="password" 时,chrome浏览器会以 type="password" 为标识记住输入的用户名和密码,

如果chrome用户选择记住密码,chrome会把输入过的用户名、密码填充到表单中;

在React中,以下2中方法都不能解决问题:

1.在表单前增加2个input并隐藏

<input type="text" style="display:none"/>

<input type="password" style="display:none"/>

2.添加 autocomplete="off" 属性

<input type="password" autocomplete="off"/>

 

React不推崇Dom操作,通过state切换type的值来阻止浏览器的填充行为。


constructor(props) {
    super(props);
    this.state = {
       type: 'text'
    };
}

...

// 点击表单后,改变type
changeType = () => {
   this.setState({ type: 'password' });
}

...

render() {
   return (
    ...
<Input type={this.state.type} onClick={this.changeType}/>

    ... ) }

 

相关文章:

  • 2021-09-13
  • 2021-12-19
  • 2022-12-23
  • 2022-01-03
  • 2021-12-19
  • 2021-12-19
  • 2021-11-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-25
  • 2022-12-23
  • 2021-06-18
  • 2021-07-08
  • 2022-02-10
相关资源
相似解决方案