Input filter showcase
Text input filters with pure JS.
by pankaj agrawal
HTML
<table>
<tr><td>Integer (positive only):</td><td><input id="uintTextBox"></td></tr>
</table>
JavaScript
// Restricts input for the given textbox to the given inputFilter.
function setInputFilter(textbox, inputFilter) {
["input", "keydown", "keyup", "mousedown", "mouseup", "select", "contextmenu", "drop"].forEach(function(event) {
textbox.addEventListener(event, function() {
if (inputFilter(this.value)) {
this.oldValue = this.value;
this.oldSelectionStart = this.selectionStart;
this.oldSelectionEnd = this.selectionEnd;
} else if (this.hasOwnProperty("oldValue")) {
this.value = this.oldValue;
this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
}
});
});
}
// Install input filters.
setInputFilter(document.getElementById("uintTextBox"), function(value) {
return /^\d*$/.test(value); });