AKTUALISIEREN
Ich habe den Code festgelegt , die einen Fehler hatte und fügte hinzu , ein var genannt Schlüssel den Schlüssel zu speichern gedrückt Code keyCode und welche , die des Browsers ab.
var key = e.which || e.keyCode;
Danke Donald.McLean :)
Wenn Sie überprüfen möchten, ob Sie während der Eingabe Zahlen schreiben (und vermeiden, andere Zeichen in Ihr Eingabefeld zu schreiben), können Sie diese einfache Funktion verwenden und die zulässigen Elemente definieren (dies schließt alles ein, was Sie filtern möchten). Auf diese Weise können Sie nicht nur Ganzzahlen, sondern beispielsweise eine bestimmte Gruppe von Zeichen auswählen. Das Beispiel basiert auf jQuery, um es an ein Eingabefeld anzuhängen.
$('#myInputField').keypress(function(e)
{
var key = e.which || e.keyCode;
if (!(key >= 48 && key <= 57) &&
(key !== 8) &&
(key !== 9) &&
(key !== 37) &&
(key !== 39) &&
(key !== 46))
{
e.preventDefault();
return false;
}
});
Wenn Sie einen anderen als den definierten Schlüssel verwenden, wird dieser nicht im Feld angezeigt. Und weil Angular.js heutzutage stark wird. Dies ist die Anweisung, die Sie erstellen können, um dies in einem beliebigen Bereich Ihrer Web-App zu tun:
myApp.directive('integer', function()
{
return function (scope, element, attrs)
{
element.bind('keydown', function(e)
{
var key = e.which || e.keyCode;
if (!(key >= 48 && key <= 57) &&
(key !== 8) &&
(key !== 9) &&
(key !== 37) &&
(key !== 39) &&
(key !== 46))
{
e.preventDefault();
return false;
}
});
}
});
Aber was passiert, wenn Sie ng-repeatdiese Richtlinie verwenden möchten und sie nur in einer bestimmten Anzahl von Feldern anwenden müssen? Nun, Sie können die obere Direktive in eine Direktive umwandeln, die bereit ist, einen wahren oder falschen Wert zuzulassen , um entscheiden zu können, welches Feld davon betroffen sein wird.
myApp.directive('rsInteger', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
if (attrs.rsInteger === 'true') {
element.bind('keydown', function(e)
{
var key = e.which || e.keyCode;
if (!(key >= 48 && key <= 57) &&
(key !== 8) &&
(key !== 9) &&
(key !== 37) &&
(key !== 39) &&
(key !== 46))
{
e.preventDefault();
return false;
}
});
}
}
}
});
Um diese neue Direktive zu verwenden, müssen Sie sie nur in einem Text vom Typ Eingabe eingeben, zum Beispiel:
<input type="text" rs-integer="true">
Hoffe es hilft dir.