我有一个html输入文本,当用户尝试输入时,我想只显示最后3个值并将其他值作为密码。
类似这样的事:*****456
您对如何使用javascript或jquery实现此目的有任何想法吗?
答案 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);
});