Replace input text value by text in string in REALTIME
What I need: When I press any key on the keyboard in the input text, I replace it with the content of the 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 a key press before my script replaces it. Can you hide it?
Thank.
+3
source to share
4 answers
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">
+2
source to share
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 fiddle: https://jsfiddle.net/ypcxu27o/23/
changes:
- use onKeyPress instead of onKeyUp event
- use e.preventDefault () to prevent showing original input
- use cptTexte.length + 1 to account for the entered character.
+1
source to share