In meinem Code versuche ich einen Tastendruck zu überschreiben (zum Beispiel versuche ich, alle nicht numerischen Tasten zu überschreiben, wenn eine numerische Tastatur angezeigt wird). Ich habe versucht, die folgenden zu tun, und es nur mit dem Backspace gearbeitet, eingeben und Tab-Tasten:Override-Taste mit Winkel drücken
HTML:
<input ng-keydown="numberKeydown($event)">
JS:
$scope.numberKeydown = function(event) {
if(!(event.keyCode >= 48 && event.keyCode <= 57) && !(event.keyCode >= 96 && event.keyCode <= 105)) { // if not 0-9 for normal, numeric keypad
event.stopPropagation();
event.preventDefault();
}
};
Keine von diesen für mich gearbeitet für die Interpunktionszeichen (i/e (
oder )
oder .
usw.). Die Rücktaste und die Eingabetaste funktionieren jetzt nicht, aber alle anderen Zeichen werden weiterhin angezeigt. Ich habe auch versucht ng-keypress
und ng-keyup
verwenden, obwohl ich nicht wirklich erwarten, zu arbeiten, um sie zu ...
EDIT: ich erwähnt habe sollte, aber ich mache meine Tests auf einer Tablette (Nexus 9 , iPad)
ein bisschen leichter zu ermöglichen provisioniert zu lesen: '' 'var key = event.keyCode if (Taste < 48 || (Taste> 57 && Taste <96) || Taste> 105) {// Wenn nicht 0-9 für normales, numerisches Tastenfeld''' sind Sie sicher, dass es sich darin befindet Block? – bryce
Das macht es leichter zu lesen! Und ja, ich kann den Code darin stoppen, wenn Block (obwohl das Verhalten bei der Verwendung von Breakpoints merkwürdig wirkt - ich denke, das Timing der Ereignisse wird durcheinander gebracht) – Kevin