4

What I need : When I press any key on my keyboard in an input text, I replace it by the content of a string.

This is what I have : 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';
}

My problem is that we see the key press before my script replace it. Is-it possible to hide it ?

Thank you.

Elbarto
  • 43
  • 3

4 Answers4

3

This should do it:

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">
Rick Hitchcock
  • 35,202
  • 5
  • 48
  • 79
1

try this:

<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();
}

see also the fiddle: https://jsfiddle.net/ypcxu27o/23/

changes:

  • use onKeyPress instead of onKeyUp event
  • use e.preventDefault() to prevent showing the original input
  • use cptTexte.length + 1 to account for the newly entered character
Remigius Stalder
  • 1,921
  • 2
  • 26
  • 31
0

you can try some kind of css trick here , like at initial stage keep font transparent.

 $('#edValue').css('color','transparent');

and after at the end performing your operation set color black again $('#edValue').css('color','black');

Kaushik Thanki
  • 3,334
  • 3
  • 23
  • 50
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/

Nono
  • 161
  • 7