我想在用户输入时将输入表单中的文本更改为“*”。我已经弄清楚了如何将文本更改为星号,并且它在控制台中显示为星号,但我无法在用户输入时更改文本。下面是我的代码:
const cardNumber = document.getElementById("input");
const reg = new RegExp("^[0-9]*$");
cardNumber.addEventListener("keyup", function changeChar(){
if(cardNumber.value.length <= 12){
for(i=0; i<cardNumber.value.length; i++){
const newValue = cardNumber.value[i].replace(reg, "*");//Replaces the number with an asterisk
console.log(newValue);//Outputs as asterisks on the console
cardNumber.value[i].innerHTML = newValue;//This doesn't seem to do the trick
}
}
});
我试着用.value和.innerHTML方法改变文本的值,但没有成功。我希望当用户输入时,文本会变成星号。
1条答案
按热度按时间bihw5rsg1#
你把事情弄得太复杂了
只需获取输入的长度,然后创建一个长度相同的
*
字符串,并将其赋给输入值。