首页 > 解决方案 > 在输入类型文本中,为什么我无法添加 - 在输入四个字母后使用 javascript?

问题描述

我只是想创建这样的东西-在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) {

   let valueReplaced = dataAValue.replace(`${dataAValue}`, `${dataAValue}-`) 
//    console.log(dataAValue);
   dataAValue = valueReplaced;
  
   }
}
  <input type="text" id="dateOne">

标签: javascriptstringreplace

解决方案


您正在重新分配变量。您需要修改对象this

您可以通过使用来清理代码,+而不是replace使用三元运算符而不是if-else

let dateA = document.getElementById("dateOne");
dateA.onkeyup = function(){
    this.value += this.value.length === 2 ? '-' : ''
}
<input type="text" id="dateOne">


推荐阅读