Auch ich bin mit Firefox, ich hatte das gleiche Problem meine Eingabetyp Anzahl der Entwicklung caracters und Räume usw. eingeben ... Ich habe die Lösung des Tags pattern = "gefunden [1- 9] ", aber leider hat es bei mir nicht funktioniert. Nach einer Suche ohne Ergebnis entschied ich mich, meine eigene Funktion zu entwickeln. ohnehin Winkel 2 in dieser Beispiele mit im, dessen Javascript fast ähnlich, so können Sie diesen Code in jedem Fall verwenden: hier ist die html:
<input class="form-control form-control-sm" id="qte" type="number" min="1" max="30" step="1" [(ngModel)]="numberVoucher"
(keypress)="FilterInput($event)" />
hier wird die Funktion filter:
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 dieser Funktion musste ich einfach den Tastendruck von Zahlen, Richtung, Löschen eingeben lassen.
Für Firefox - ohne Javascript ist es nicht möglich. Immer noch funktioniert das Feld, wenn Sie falsch sind und irgendein Nicht-Ziffern-Symbol eingeben - Feld wird in diesem Fall nicht validiert. Wenn Sie ein Beispiel brauchen, wie man das mit JS macht, lassen Sie es mich wissen. –
Firefox 39 in Mac OSX verhindert standardmäßig nicht die Eingabe von Alpha-Zeichen und Firefox 42 validiert nur, aber es deaktiviert die Eingabe von Alpha-Tasten nicht. Bezogen von: http://caniuse.com/#feat=input-number (Registerkarte Bekannte Probleme) – Venkat