我只是试图创建类似这样的东西- 在html中,我有一个输入类型的文本,每当输入值的总和为2时,javascript将在这之后添加一个连字符- 如果值ID为“ sd”,则javascript将其设为“ sd-”, 它可以在控制台上运行,但不能直观地更改输入值(用户看不到)。
我想要一个可以更改输入值的解决方案,并且可以看到在输入中添加了连字符。
let dateA = document.getElementById("dateOne");
dateA.onkeyup = function(){
let dataAValue = this.value;
let dataAValueLength = this.value.length;
if(dataAValueLength == 2) {
// dataAValue = dataAValue + "-";
let valueReplaced = dataAValue.replace(`${dataAValue}`, `${dataAValue}-`)
// console.log(dataAValue);
dataAValue = valueReplaced;
}
}
<input type="text" id="dateOne">
答案 0 :(得分:1)
您正在重新分配变量。您需要修改对象this
您可以仅使用+
代替replace
来清理代码,并使用三元运算符代替if-else
let dateA = document.getElementById("dateOne");
dateA.onkeyup = function(){
this.value += this.value.length === 2 ? '-' : ''
}
<input type="text" id="dateOne">