首页 > 其他 > 详细

实现input框输入时将值替换为*,停止输入一秒后将最后的字符替换为*

时间:2019-09-30 16:44:44      阅读:252      评论:0      收藏:0      [点我收藏+]

展示效果地址:https://1963331542.github.io/inputPassword/

源代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>input密码框显示为星号“*”</title>
  </head>
  <body>
    <input type="text" />
    当前输入值为:<span></span>
  </body>
</html>
<script>
  var str = ""; //str变量用于存储密码
  //获取input元素
  var input = document.getElementsByTagName("input")[0];
  //获取span元素
  var span = document.getElementsByTagName("span")[0];
  input.oninput = function(evt) {
    var val = this.value; //取到输入框的值
    if (val.length > str.length) {
      //输入值
      str += val.charAt(val.length - 1);
    } else {
      //回删值
      str = str.substr(0, val.length);
    }
    //将输入框除最后一位的字符替换成*
    this.value =
      val.substr(0, val.length - 1).replace(/./g, "*") +
      val.charAt(val.length - 1);
    /* 取当前输入框长度,用于判断是否正在输入
    停止输入时,一秒后将最后一个字符变成*号 */
    var len = this.value.length;
    setTimeout(() => {
      /*这时的this指向在延迟器触发时输入框的状态,
    而不是延迟器创建时的状态*/
      if (this.value.length == len) {
        //一秒后输入框的值长度不变,将所有字符替换为*
        this.value = this.value.replace(/./g, "*");
      }
    }, 1000);
    span.innerHTML = str;
  };
</script>

 觉得不错可以关注一下哦

实现input框输入时将值替换为*,停止输入一秒后将最后的字符替换为*

原文:https://www.cnblogs.com/thinkerWang/p/11613193.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!