在REALTIME

时间:2015-05-31 13:45:25

标签: javascript

我需要什么: 当我在输入文本中按键盘上的任意键时,我将其替换为字符串的内容。

这就是我所拥有的:https://jsfiddle.net/ypcxu27o/

<input id="edValue" type="text" onKeyUp="edValueKey()">


function edValueKey()
{
    //var moninput = document.getElementById("edValue").value;
    var monTexte = 'This is my test';
    var cptTexte = document.getElementById("edValue").value;
    cptTexte = cptTexte.length;
    //alert(cptTexte);
    document.getElementById("edValue").value = monTexte.substr(0, cptTexte);
    //document.getElementById("edValue").innerHTML = 'yuty';
}

我的问题是我们在脚本替换之前看到按键。 是否可以隐藏它?

谢谢。

4 个答案:

答案 0 :(得分:2)

这应该这样做:

document.getElementById('edValue').addEventListener('keydown', function(ev) {
  var monTexte = 'This is my test';
  if(ev.which !== 8) {  //everything except backspace
    this.value= monTexte.substr(0,this.value.length+1);
    ev.preventDefault();
  }
});
<input id="edValue" type="text">

答案 1 :(得分:1)

试试这个:

<input id="edValue" type="text" onKeyPress="edValueKey(event)">

function edValueKey(e) {
    var monTexte = 'This is my test';
    var cptTexte = document.getElementById("edValue").value;
    cptTexte = cptTexte.length + 1;
    document.getElementById("edValue").value = monTexte.substr(0, cptTexte);
    e.preventDefault();
}

另见小提琴:https://jsfiddle.net/ypcxu27o/23/

的变化:

  • 使用onKeyPress而不是onKeyUp事件
  • 使用e.preventDefault()来阻止显示原始输入
  • 使用cptTexte.length + 1来计算新输入的字符

答案 2 :(得分:0)

你可以尝试某种css技巧,比如在初始阶段保持字体透明。

loose2crop()

并在执行完操作后再次将颜色设置为黑色 $('#edValue').css('color','transparent');

答案 3 :(得分:0)

<input id="edValue" type="text" onKeyUp="edValueKey()">

function edValueKey()
{
    var monInput = document.getElementById("edValue");
    var monTexte = 'This is my test';
    var cptTexte = monInput.value;
    monInput.value = monTexte.substr(0, cptTexte.length);
}

https://jsfiddle.net/ypcxu27o/25/