zoukankan      html  css  js  c++  java
  • React中禁止chrome填充表单

    总结:在react中浏览器只会在第一次初始化dom树时将默认的用户名和密码渲染上(只有当页面中存在密码框时才会进行,所以react有如下解决方法)

    当 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的值来阻止浏览器的填充行为。

    复制代码
    
    
    // 初始化state,组建初次渲染时type="text",浏览器不会对表单做填充行为
    constructor(props) {
        super(props);
        this.state = {
           type: 'text'
        };
    }
    
    ...
    
    // 点击表单后,改变type
    changeType = () => {
       this.setState({ type: 'password' });
    }
    
    ...
    
    render() {
       return (
        ...
    <Input type={this.state.type} onClick={this.changeType}/>

        ... ) }
  • 相关阅读:
    mysql cpu 占用高
    使用cron命令配置定时任务(cron jobs)
    python 获取时间
    linux 免密码登陆
    linux 查看登录日志
    shizhong
    正则(?is)
    python shell
    linux 时间设置
    java获取当前时间前一周、前一月、前一年的时间
  • 原文地址:https://www.cnblogs.com/nyhhd/p/12560503.html
Copyright © 2011-2022 走看看