title: Why does Edge mask the onchange event handler when an input has an input event handler that changes the input's value?
body: <p>In this HTML</p>
  
  <pre><code>&lt;html lang="en"&gt;
    &lt;head&gt;
      &lt;meta charset="utf-8" /&gt;
      &lt;meta http-equiv="x-ua-compatible" content="ie=edge" /&gt;
      &lt;meta name="viewport" content="width=device-width, initial-scale=1" /&gt;
  
      &lt;title&gt;&lt;/title&gt;
  
      &lt;/head&gt;
  
    &lt;body&gt;
  
      Enter some number here:
      &lt;input  type="number" min="0" 
            oninput="console.log(' on input '); 
            this.value = Math.abs(this.value);"
            onchange="console.log(' on change');"/&gt;
  
    &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>The input has 2 event handlers</p>
  
  <ul>
  <li>input</li>
  <li>change</li>
  </ul>
  
  <p>However onchange is not called.</p>
  
  <p>Note, the oninput handler changes the value of the input. If I remove</p>
  
  <pre><code>this.value = Math.abs(this.value);
  </code></pre>
  
  <p>both events are fired.</p>
  
  <p>This behaviour seen in Microsoft Edge 44.17763.1.0 (Microsoft EdgeHTML 18.17763)</p>
  
  <p>This does not happen in Chrome nor in Firefox.</p>
  
  <p><strong>Questions</strong></p>
  
  <ol>
  <li>What am I doing wrong?</li>
  <li>Is this from an inherited large code base with many input's all with an oninput and an onchange. The onchange is not called. What is the most efficient way to fix this?
  (Disclaimer:I'm no HTML / javascript expert.)</li>
  </ol>