登录密码框 内容的显示隐藏

 逻辑:input自带的password属性,只需要点击眼睛,控制type属性即可;注意点:当type=password时,给input的value一个挂靠在state中的类型,不需要具体值

/**
 * @name Pass_word
 * @description 登录类验证
 */
import React, { Component } from "react";
import { Icon, message } from "antd";
import Title from "@/component/Title";
import styles from "./styles.module.less";

class Pass_word extends Component {
  state = {
    eyes: "eye-invisible",
    pass: ""
  };

  /**
   * @name onChange
   * @param {String} val输入框内容
   * @description 输入框内容改变
   */
  onChange = (val) => {
    //正则验证 只能输入数字或字母或
    let reg = /^[0-9a-zA-Z*]+$/;
    if (!val) {
      this.setState({ pass: "" });
      return;
    } else if (reg.test(val)) {
      this.setState({ pass: val });
    } else {
      message.destroy(); //销毁之前的提示
      message.error("只能输入数字或字母");
    }
  };

  /**
   * @name eyesChange
   * @description 图标变化 ,引起输入框内容变化
   */
  eyesChange = () => {
    const { eyes } = this.state;
    if (eyes === "eye-invisible") {
      //由*号,变为正常密码
      this.setState({ eyes: "eye" });
    } else {
      //由正常密码,变为*号
      this.setState({ eyes: "eye-invisible" });
    }
  };

  render() {
    const { eyes, pass, passStart } = this.state;
    return (
      <div>
        <h3>Pass_word</h3>
        <div className={styles.block}>
          <Title text={"登录密码"} />
          <input type={eyes === "eye" ? "text" : "password"} value={eyes === "eye" ? pass : passStart} onChange={(e) => this.onChange(e.target.value)} />
          <Icon type={eyes} onClick={this.eyesChange} />
        </div>
      </div>
    );
  }
}
export default Pass_word;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值