Wie geht das?
Ich habe es versucht:
var key = event.which || event.keyCode || event.charCode;
if(key == 8) alert('backspace');
aber es funktioniert nicht ...
Wenn ich beim Tastendruckereignis dasselbe mache, funktioniert es, aber ich möchte keinen Tastendruck verwenden, da das eingegebene Zeichen in meinem Eingabefeld ausgegeben wird. Ich muss das kontrollieren können
Mein Code:
$('#content').bind('input', function(event){
var text = $(this).val(),
key = event.which || event.keyCode || event.charCode;
if(key == 8){
// here I want to ignore backspace and del
}
// here I'm doing my stuff
var new_text = 'bla bla'+text;
$(this).val(new_text);
});
In meiner Eingabe sollte kein Zeichen angehängt werden. Abgesehen davon, was ich mit val () hinzufüge, sollte die Eingabe des Benutzers vollständig ignoriert werden. Nur das Drücken der Taste ist für mich wichtig
javascript
jquery
Alex
quelle
quelle
.bind
angeben, nicht als Selektor. Sollte sein$('content').bind('keypress', ...
Antworten:
Verwenden Sie
.onkeydown
das Entfernen mit und brechen Sie es abreturn false;
. So was:Oder mit jQuery, weil Sie Ihrer Frage ein jQuery-Tag hinzugefügt haben:
Wenn Sie
quelle
keydown
funktioniert nicht in Chrome Android, es gibt Leere zurück, wenn Sieenter
undbackspace
Tasten aufinput
Ereignisse und diese Tastendrücken Sie es nicht erreichenMit jQuery
Die event.which Eigenschaft normalisieren event.keyCode und event.charCode. Es wird empfohlen, event.which für die Tastatureingabe zu beobachten.
http://api.jquery.com/event.which/
quelle
event.key === "Rücktaste"
Neuere und viel sauberere: verwenden
event.key
. Keine willkürlichen Nummerncodes mehr!Mozilla Docs
Unterstützte Browser
quelle
Haben Sie versucht, 'onkeydown' zu verwenden? Dies ist die Veranstaltung, die Sie suchen.
Es funktioniert, bevor der Eingang eingefügt wird, und ermöglicht es Ihnen, die Zeicheneingabe abzubrechen.
quelle
event.preventDefault()
?return false;
jedes Ereignis einfach abbrechen, wenn Sie jQuery verwenden.Es ist eine alte Frage, aber wenn Sie ein Backspace-Ereignis bei der Eingabe abfangen möchten und nicht Keydown, Tastendruck oder Keyup - da ich bemerkt habe, dass eine dieser Funktionen bestimmte Funktionen, die ich geschrieben habe, unterbricht und bei der automatisierten Textformatierung unangenehme Verzögerungen verursacht - Mit inputType können Sie eine Rücktaste abfangen:
quelle
quelle
keydown
mitevent.key === "Backspace" or "Delete"
Neuere und viel sauberere: verwenden
event.key
. Keine willkürlichen Nummerncodes mehr!Moderner Stil:
Mozilla Docs
Unterstützte Browser
quelle
quelle
Auf Android-Geräten mit Chrome können wir keine Rücktaste erkennen. Sie können die Problemumgehung dafür verwenden:
quelle
which
undkeyCode
auf 229. Es muss ein besserer Weg, oder ein besserer Weg, bald kommen, aber ich werde jetzt im Grunde dieses verwenden. ..