Js實現input框輸入時將之前的值替換為*,停止輸入一秒后將最后的字符替換為*


展示效果地址: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>

 覺得不錯的話推薦一下哦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM