When a user is typing just 'e' in a input element of type number the value of the element in JavaScript is empty, same if a user empties the input element.
I have tried different events (input, keyup, blur), but all return "" if the one types 'e'. I don't want to block it, just to know if the input element is visually empty.
Is there a way to check if the user has typed 'e' in a input number element?
const testElement = document.getElementById("number-input");
const direct = document.getElementById("direct");
let lastV;
const setOut = (v, id) => {
const out = document.getElementById(id);
out.innerHTML = v;
};
testElement.addEventListener('input', e => setOut(e.target.value, 'input-ex'));
testElement.addEventListener('keyup', e => setOut(e.target.value, 'keyup-ex'));
testElement.addEventListener('blur', e => setOut(e.target.value, 'blur-ex'));
document.getElementById("directBtn").addEventListener('click', e => setOut(testElement.value, 'direct-ex'));
document.getElementById("clrBtn").addEventListener('click', () => {
testElement.value = null;
})
<input id="number-input" type="number">
<button id="directBtn">
get direct
</button>
<button id="clrBtn">
clear
</button>
<p id="out">
Input <span id="input-ex"></span> <br/> Key up <span id="keyup-ex"></span> <br/> Blur <span id="blur-ex"></span> <br/> Direct <span id="direct-ex"></span> <br/>
</p>
<p id="direct">
</p>