我想输入[type =“password”]只隐藏用户输入的字母,除了最后一个字母。
如果用户要在密码字段中写更多字母,那么之前的字母应该用密码点隐藏,最后一个字母应该保持可见,直到用户输入新字母为止。
欲了解更多信息,请访问:
答案 0 :(得分:0)
一种实现是创建一个新的输入类型..用除了最后一个之外的项目符号点替换键入的字符,然后在超时时替换最后一个。这样做会改变输入的值但是为了得到实际值,你必须使用myInput.getAttribute('data-value');
代替myInput.value
,这意味着你无法像提交它一样提交它正常形式。
(()=>{
var to;
var fields = document.querySelectorAll('[type=fancyPassword]');
Array.from(fields).forEach(ele=>{
ele.setAttribute("data-value", "");
ele.addEventListener('keyup', function(){
if(to) clearTimeout(to);
if(!this.value.length) return;
var typed = this.value.split('').pop();
this.setAttribute("data-value", this.getAttribute("data-value")+typed);
this.value = "•".repeat(this.value.length-1)+typed;
to = setTimeout(()=>this.value = "•".repeat(this.value.length),500);
});
});
})();

<input type=fancyPassword>
&#13;