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}/>

        ... ) }
  • 相关阅读:
    js实现方块弹珠游戏
    学习servlet时出现的一些问题
    简述JAVA类的生命周期
    JAVA高级之路----JAVA多线程
    小计Tomcat的调优思路
    java生成pdf
    git分支在团队中的使用
    程序员修炼内功心法
    学会学习
    如何快速阅读
  • 原文地址:https://www.cnblogs.com/nyhhd/p/12560503.html
Copyright © 2011-2022 走看看