繁体   English   中英

按下键盘事件后如何掩盖输入中的每个字符?

[英]How to mask each character in an input after keydown event?

我正在使用输入来输入信用卡号的信用卡验证。 我想在用户按下一个键后用“#”掩盖输入的每个数字,例如,键入1将在输入上用1代替1。 我正在使用keydown事件进行验证。

注意

我不需要保留值,可以在更改之前将原始值存储到数组中。 #转换应在按下每个键之后显示,而不是一次输入整数后才显示。

我试过使用

 event.target.value = "#";

这给出了一个奇怪的输出,例如#1234而不是1234被####代替

我最新的解决方案

 const input = document.querySelector("input"); input.addEventListener("keydown", (event) => { event.target.value(/\\d/g, "#"); }); 
 <input size=4 placeholder="----" /> 

这根本没有做任何事情

我怀疑我对如何处理此问题的想法从根本上是错误的。 请任何帮助将不胜感激。

您的event.target.value(/ \\ d / g,“#”)应该是event.target.value = event.target.value.replace(/ \\ d / g,“#”);。 这应该使您更接近。 –泰勒·罗珀(Tyler Roper)

而是在按下键时绑定事件,因此它还会转换最后输入的值。

码:

(function () {

            const input = document.querySelector("input");
            input.addEventListener("keyup", (event) => {
                var maskedVal = event.target.value.replace(/\d/g, "#");
                event.target.value= maskedVal;
                console.log("#########",maskedVal);
            });


        })();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM