Gostaria de simular o aperto de uma tecla de forma que, ao clicar num botão, este acione uma função que enviará o evento para um input ou textarea e apareça a letra "digitada" como se tivesse sido enviada pelo teclado.
No código (teste) abaixo eu fiz o seguinte: No input, o usuário digita uma tecla e uma função armazena o evento na variável y. Ao clicar no botão, uma outra função envia o evento para a textarea. Para saber se o evento estava sendo enviado corretamente coloquei um onkeypress na textarea que retorna um asterisco. Ao clicar no botão, no entanto, aparece o asterisco, comprovando que o evento foi enviado corretamente, mas a letra digitada não aparece na textarea. Eu queria que a letra aparecesse, como se alguém tivesse digitado no teclado, sem ter que alterar nenhum parâmetro da textarea.
Alguém sabe como fazer?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
var y;
function myFunction(event){
y=event;
console.log(y);
}
function funcao(){
document.getElementById("entrada2").dispatchEvent(y);
console.log(y);
}
</script>
</head>
<body>
<input type="text" id="entrada" onkeypress="myFunction(event)" autofocus>
<textarea id="entrada2" onkeypress="this.innerHTML+='*'"></textarea>
<button onclick="funcao()">CLIQUE</button>
</body>
</html>