Perché l’input HTML con tipo “numero” consente di inserire la lettera “e” nel campo?

Ho il seguente elemento di input html5:

 

Perché questo input consente di inserire il carattere “e” nel campo di immissione? Nessun altro carattere alfabetico può essere inserito (come previsto)

Utilizzando chrome v. 44.0.2403.107

Per vedere cosa intendo: http://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_number

Perché è esattamente come le specifiche dicono che dovrebbe funzionare. L’immissione del numero può accettare numeri in virgola mobile , compresi i simboli negativi e il carattere e o E :

Un numero in virgola mobile consiste delle seguenti parti, esattamente nel seguente ordine:

  1. Opzionalmente, il primo carattere può essere un carattere ” - “.
  2. Uno o più caratteri nell’intervallo ” 0—9 “.
  3. Facoltativamente, le seguenti parti, esattamente nel seguente ordine:
    1. un carattere ” .
    2. uno o più caratteri nell’intervallo ” 0—9
  4. Facoltativamente, le seguenti parti, esattamente nel seguente ordine:
    1. un carattere ” e ” o un carattere ” E
    2. opzionalmente, un carattere ” - ” o un carattere ” +
    3. Uno o più caratteri nell’intervallo ” 0—9 “.

Possiamo renderlo così semplice come di seguito

  

Il tipo di numero di input HTML consente “e / E” perché “e” sta per esponenziale che è un simbolo numerico.

L’esempio 200000 può anche essere scritto come 2e5. Spero che questo ti aiuti a ringraziarti per la domanda.

  function FilterInput(event) { var keyCode = ('which' in event) ? event.which : event.keyCode; isNotWanted = (keyCode == 69 || keyCode == 101); return !isNotWanted; }; function handlePaste (e) { var clipboardData, pastedData; // Get pasted data via clipboard API clipboardData = e.clipboardData || window.clipboardData; pastedData = clipboardData.getData('Text').toUpperCase(); if(pastedData.indexOf('E')>-1) { //alert('found an E'); e.stopPropagation(); e.preventDefault(); } };