为什么输入中未显示“-”

时间:2019-07-07 06:26:22

标签: javascript string replace

我只是试图创建类似这样的东西- 在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">

1 个答案:

答案 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">

相关问题