[英]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.