This question has been asked before back in 2011 Allow only numbers into a input text box but the final code doesn't work in my situation and I did wonder if there was an update scenario.
I am trying to stop all characters other than the numbers 0123456789 from being input.
document.getElementById("text_input").addEventListener("keydown", (eventObject) => {
// Add : after the first 2 chracters
const length = eventObject.target.value.length;
const keyCode = eventObject.keyCode;
if (keyCode != 8 && length === 2) {
eventObject.target.value += ":"
}
// Stop all characters other than 0123456789 from being input
const charCode = (typeof eventObject.which == "number") ? eventObject.which : eventObject.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
});
<input id="text_input" type="text" name="hours">