JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://api.jquery.com/resources/events.js"></script>
<div>
When you click on "Trigger KeyPress event" it will read the string from first textbox and try to generate keyboard events ('keydown', 'keypress', 'keyup') on second textbox for given string.
</div>
<input type="text" id="in" value="aA">
<input type="text" id="test">
<button class="triggerKP">
Trigger KeyPress event
</button>
<div id="output"></div>

JavaScript

$(function(){
  $( "#test" ).keypress(function( event ) {
    handleKBEvent('keypress', event);
  });
  $( "#test" ).keyup(function( event ) {
    handleKBEvent('keyup', event);
  });
  $( "#test" ).keydown(function( event ) {
    handleKBEvent('keydown', event);
  });
  
  $(".triggerKP").click(function() {
    // just to ensure that KB events are fired only after textbox has got focus
    $("#test").on('focus', trigKPOnFocus);
    $("#test").focus();
    $("#test").off('focus', trigKPOnFocus);
  });
})


function handleKBEvent(name, event) {
  if ( event.which == 13 ) {
     event.preventDefault();
  }
  
  var msg = "<b>Handler for ." + name + "() called </b>";
  $.print( msg );
  $.print( event.originalEvent );
}


function trigKPOnFocus() {
  log('generating text event', 'html');
  var str = $('#in').val();
  for(var i=0; i<str.length; i++) {
    generateKP(str[i], "test");
    $('#test').val($('#test').val() + str[i]);
  }
}
function generateKP(ch, txt) {
  var c = ch.toUpperCase().charCodeAt(0);
  //log(ch + ":" + c);
  //log('For keydown and keyup of: ' + ch)
  var detailsKDU = {
    'view': window,
    'isTrusted': true,
    'charCode': 0,
    'keyCode': c,
    'which': c,
    'key': ch,
    'code': "Key" + ch.toUpperCase(),
    'bubbles': true,
    'cancelable': true,
    'eventPhase': 2
  };
  //log(detailsKDU);

  var c = ch.charCodeAt(0);
  //log('For keypress of: ' + ch)
  var detailsKP = {
    'view': window,
    'isTrusted': true,
    'charCode': c,
    'keyCode': 0,
    'which': c,
    'key': ch,
    'code': "Key" + ch.toUpperCase(),
    'bubbles': true,
    'cancelable': true,
    'eventPhase': 2
  };
  //log(detailsKP);

  var txtbox = document.getElementById(txt);

  var e1 = new KeyboardEvent('keydown', detailsKDU);
  var b1 = txtbox.dispatchEvent(e1);

  var e2 = new KeyboardEvent('keypress', detailsKP);
  var b2 = txtbox.dispatchEvent(e2);
  
  var e3 = new KeyboardEvent('keyup', detailsKDU);
  var b3 = txtbox.dispatchEvent(e3);
  log(b1)
 ...