Last active
September 6, 2020 23:00
-
-
Save rezafikkri/d9a60b59bd02f752800ca6a657daeb54 to your computer and use it in GitHub Desktop.
Filter Input Number, menggunakan input type number
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
document.getElementById("floatTextBox").addEventListener('keyup', function (event) { | |
// jika yang ditekan bukan backspace dan del | |
if(event.keyCode !== 8 && event.keyCode !== 46) { | |
// jika value cocok dengan expression | |
if(/^-?\d+(,|\.)?\d*$/.test(this.value)) { | |
// set oldValue = value dan keluar dari function; | |
this.oldValue = this.value; return 0; | |
// selain dari itu, jika property oldValue ada | |
} if(this.hasOwnProperty('oldValue')) { | |
// set value = value lama | |
this.value = this.oldValue; return 0; | |
// selain dari itu, jika yang dimasukkan adalah karakter (-); ini untuk menghandle jika awalnya input masih kosong dan dimasukkan karakter (-) maka langsung keluar dari function; | |
} if(event.key === '-') return 0; | |
// selain dari itu, kosongkan value input; ini untuk menghandle jika awalnya input masih kosong dan dimasukkan karakter selain (-) dan angka; | |
this.value = ''; | |
// selain dari itu, jika yang ditekan adalah backspace dan del | |
} else if(event.keyCode !== 8 || event.keyCode !== 46) { | |
// jika length value = 0, itu artinya tidak ada lagi value di input, maka delete property oldValue dan keluar dari function | |
if(this.value.length === 0) delete this.oldValue; return 0; | |
// selain dari itu, set oldValue = value | |
this.oldValue = this.value; | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Live Preview: https://jsfiddle.net/rezafikri/39x8c16h/1/
Tested on: Mozilla Firefox 78 and Google Chrome 83