I use firefox, I had the same problem as my introductory type for inputting characters and spaces, etc .... anyway I use angular 2 in these examples, it is almost like javascript, so you can use this code in each case: here is the html:
<input class="form-control form-control-sm" id="qte" type="number" min="1" max="30" step="1" [(ngModel)]="numberVoucher" (keypress)="FilterInput($event)" />
here is the FilterInput function:
FilterInput(event: any) { let numberEntered = false; if ((event.which >= 48 && event.which <= 57) || (event.which >= 37 && event.which <= 40)) { //input number entered or one of the 4 directtion up, down, left and right //console.log('input number entered :' + event.which + ' ' + event.keyCode + ' ' + event.charCode); numberEntered = true; } else { //input command entered of delete, backspace or one of the 4 directtion up, down, left and right if ((event.keyCode >= 37 && event.keyCode <= 40) || event.keyCode == 46 || event.which == 8) { //console.log('input command entered :' + event.which + ' ' + event.keyCode + ' ' + event.charCode); } else { //console.log('input not number entered :' + event.which + ' ' + event.keyCode + ' ' + event.charCode); event.preventDefault(); } } // input is not impty if (this.validForm) { // a number was typed if (numberEntered) { let newNumber = parseInt(this.numberVoucher + '' + String.fromCharCode(event.which)); console.log('new number : ' + newNumber); // checking the condition of max value if ((newNumber <= 30 && newNumber >= 1) || Number.isNaN(newNumber)) { console.log('valid number : ' + newNumber); } else { console.log('max value will not be valid'); event.preventDefault(); } } // command of delete or backspace was types if (event.keyCode == 46 || event.which == 8) { if (this.numberVoucher >= 1 && this.numberVoucher <= 9) { console.log('min value will not be valid'); this.numberVoucher = 1; //event.preventDefault(); this.validForm = true; } } } // input is empty else { console.log('this.validForm = true'); this.validForm = false; } };
in this function, I just had to allow keystrokes, directions, deletions to be entered, so this function simply does not double for a positive integer.
Abdelhalim FELLAGUE CHEBRA Apr 17 '17 at 14:06 on 2017-04-17 14:06
source share