如何仅显示输入中的最后3个值

时间:2017-06-15 16:23:56

标签: javascript jquery

我有一个html输入文本,当用户尝试输入时,我想只显示最后3个值并将其他值作为密码。

类似这样的事:*****456

您对如何使用javascript或jquery实现此目的有任何想法吗?

1 个答案:

答案 0 :(得分:0)

决定刺伤它。不确定我是否真的使用过这个想法...

function attachToInput(input) {

  // the actual characters
  var chars = [];

  // update the input with the hidden prefix version
  function updateInputValue() {
    var value   = chars.join("");
    var nHidden = Math.max(0, value.length - 3);
    var last3   = value.substr(nHidden);
    input.value = "*".repeat(nHidden) + last3;
  }

  // standard characters
  input.addEventListener("keypress", function (e) {
    var pos = input.selectionStart;
    var char = String.fromCharCode(e.keyCode);
    chars.splice(pos, 0, char);
    updateInputValue();
    e.preventDefault();
  });

  // backspace & delete
  input.addEventListener("keydown", function (e) {
    var pos = input.selectionStart;
    if (e.keyCode === 8) {
      chars.splice(pos - 1, 1);
      updateInputValue();
      e.preventDefault();
    }
    if (e.keyCode === 46) {
      chars.splice(pos, 1);
      updateInputValue();
      e.preventDefault();
    }
  });
}

$(function () {
  var input = document.getElementById("foo");
  attachToInput(input);
});