Ich habe ein paar Probleme mit einem Keyup-Ereignis, das auf meinem iPhone ausgelöst wird. Mein Code lautet wie folgt:
var passwordArray = ["Word", "test", "hello", "another", "here"];
var test = document.getElementById('enter-password');
test.addEventListener('keyup', function(e) {
if (jQuery.inArray(this.value, passwordArray) != -1) {
alert("THIS IS WORKING");
} else {}
});
Die Idee ist, dass, wenn der Benutzer in das Feld #enter-password
eingibt, und wenn ein Wort in der Variable passwordArray
übereinstimmt, der Alarm ausgelöst wird. Dies funktioniert auf dem Desktop, z. Sobald Sie Word
eingegeben haben, wird die Funktion sofort ausgelöst, sobald Sie die d
eingegeben haben. Gibt es sowieso, dass dies auch für Mobilgeräte funktioniert?
Sie können Eingabeereignisse hinzufügen. Es ist ein Ereignis, das ausgelöst wird, wenn sich die Eingabe ändert. Die Eingabe funktioniert sowohl auf dem Desktop als auch auf Mobiltelefonen
test.on('keyup input', function(){
//code
});
In dieser Antwort finden Sie weitere Informationen zu jQuery Input Event
Es gibt drei Ereignisse, die Sie verwenden können (aber Sie müssen vorsichtig sein, wie Sie sie "kombinieren"):
keyup : funktioniert auf Geräten mit Tastatur, es wird ausgelöst, wenn Sie eine Taste loslassen (jede Taste, auch Tasten, die nichts auf dem Bildschirm anzeigen, wie ALT oder STRG);
touchend : Es funktioniert auf Touchscreen-Geräten. Es wird ausgelöst, wenn Sie Ihren Finger/Stift vom Display entfernen.
input : wird ausgelöst, wenn Sie eine Taste drücken "und die Eingabe sich ändert" (wenn Sie Tasten wie ALT oder CTRL drücken, wird dieses Ereignis nicht ausgelöst).
Das input event funktioniert auf Tastaturen und bei Touchscreen-Geräten. Es ist wichtig darauf hinzuweisen, da das Beispiel in der akzeptierten Antwort korrekt ist, aber näherungsweise:
test.on('keyup input', function(){
}
Auf Tastatur-basierten Geräten wird diese Funktion zweimal aufgerufen , weil sowohl die Ereignisse Keyup als auch Input ausgelöst werden.
Die richtige Antwort sollte sein:
test.on('keyup touchend', function(){
}
(Die Funktion wird auf keyup für Desktops/Laptops OR auf touchend für Handys aufgerufen)
oder Sie können es einfach verwenden
test.on('input', function(){
}
denken Sie jedoch daran, dass das input event nicht von allen Tasten ausgelöst wird (CTRL, ALT & Co. löst das Event nicht aus).
Das Touchend-Ereignis wird ausgelöst, wenn ein Berührungspunkt vom Gerät entfernt wird.
https://developer.mozilla.org/en-US/docs/Web/Events/touchend
Sie können keyup- und touchend -Ereignisse an die .on () jQuery-Methode (anstelle der keyup () -Methode) übergeben, um Ihren Code für beide Ereignisse auszulösen.
test.on('keyup touchend', function(){
//code
});
Sie sollten ein Eingabeereignis hinzufügen. Es funktioniert sowohl auf mobilen Geräten als auch auf Computergeräten.