JSFiddle - React, Tailwind, and code Playground

HTML

<div id="Output"></div>

<input id="inp">
    
<div id="States"></div>

<select id="sel2" size=2>
  <option>this
  <option>is
  <option>a
  <option>test
</select>

CSS

html,body {font:13px verdana}
span {padding:0.5em;display:none}

JavaScript

function GID(id) {
  return document.getElementById(id);
}

GID('States').innerHTML= '<select id="sel1">'+
      '<option>'+('Alabama|Alaska|Arizona|Arkansas|California|Colorado|Connecticut|Delaware|Florida|Georgia|Hawaii|Idaho|Illinois|Indiana|Iowa|Kansas|Kentucky|Louisiana|Maine|Maryland|Massachusetts|Michigan|Minnesota|Mississippi|Missouri|Montana|Nebraska|Nevada|New Hampshire|New Jersey|New Mexico|New York|North Carolina|North Dakota|Ohio|Oklahoma|Oregon|Pennsylvania|Rhode Island|South Carolina|South Dakota|Tennessee|Texas|Utah|Vermont|Virginia|Washington|West Virginia|Wisconsin|Wyoming'.split('|').join('<option>'))+
    '</select>';

events= ('resize|scroll|zoom|focus|blur|select|change|submit|reset|'+
         'copy|cut|paste|beforecopy|beforecut|beforepaste|'+
         'DOMActivate|DOMFocusIn|DOMFocusOut|DOMAttrModified|DOMCharacterDataModified|DOMNodeInserted|DOMNodeInsertedIntoDocument|DOMNodeRemoved|DOMNodeRemovedFromDocument|DOMSubtreeModified|DOMContentLoaded|'+
         'deviceorientation|devicemotion|'+
         'dragenter|dragover|dragleave|drop|'+
         'keydown|keyup|keypress|input|'+
         'load|beforeunload|unload|abort|error|hashchange|popstate|'+
         'click|dblclick|mousedown|mouseup|mouseover|mousemove|mouseout|mousewheel|wheel|'+
         'touchstart|touchmove|touchend|touchcancel|'+
         'readystatechange|load|loadstart|loadend|abort|error|progress|timeout|'
        ).split('|');

var S1= GID('sel1');
var S2= GID('sel2');
var INP= GID('inp');
var spans= {};
var count= {};

for(var i = 0 ; i < events.length ; i++) {
  var ei= events[i];
  count[ei]= 0;
  spans[ei]= document.createElement('span');
  GID('Output').appendChild(spans[ei]);

  (function(i) {
    INP.addEventListener(events[i], function(){showEvent(i)});
    S1.addEventListener(events[i], function(){showEvent(i)});
    S2.addEventListener(events[i], function(){showEvent(i)});
  })(i);
}

function showEvent(i) {
  count[events[i]]++;
  spans[events[i]].innerHTML=...