Bin am Telefon Validierung arbeiten und eine Anforderung der automatischen Formatierung der Eingabe mit Telefonnummer und nur numerische Zeichen hinzugefügt werden. Wenn ich jedoch versuche, die Eingabe mit Keydown und Tastendruck zu beschränken, erlaubt IPhone mir, # und * einzugeben. Wenn ich den Keydown-Wert überprüfte, stimmen beide mit 3 bzw. 8 überein (Keycode 51 und 56). Dies funktioniert perfekt in Android-Browsern, schlägt aber auf dem iPhone fehl.iPhone zurück dasselbe Keydown-Ereignis für (Hash und 3) und (Asterisk und 8)
Jeder vor einem ähnlichen Problem.
$(formSelector + ' input[name^="phone"]').on('keydown keypress',function (e) {
// Allow: backspace, delete, tab, escape, and enter
if (e.keyCode == 46 || e.keyCode == 8 || e.keyCode == 9 || e.keyCode == 27 || e.keyCode == 13 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: home, end, left, right
(e.keyCode >= 35 && e.keyCode <= 39)
) {
// let it happen, don't do anything
return;
} else {
// Ensure that it is a number and stop the keypress
if (e.shiftKey || (e.keyCode < 48 || e.keyCode > 57) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
Ich habe auch ein anderes Verfahren, das vorgeschlagen wurde, in Stackoverflow-Eingang zu binden mit ‚-Eingang property‘ Ereignissen und dann Musterabgleich verwenden. aber das funktioniert im IPhone korrekt, scheitert aber bei Android.
$(formSelector + ' input[name^="phone"]').bind('input propertychange', function() {
var text = $(this).val();
if (isNaN(text)) {
$(this).val(text.replace(/[^\d]/gi, ''));
}
});
Hat jemand eine gemeinsame Lösung für dieses Problem?
Vielen Dank im Voraus
Ist die [jQuery Demo] (http://api.jquery.com/keydown/) in den Ereignissen keine Unterschiede zeigen? – tom
jQueryDemo zeigt den gleichen Schlüsselcode. 3 und # sind gleich und 8 und * sind gleich. Aber der einzige Unterschied, den ich in Handy vs Computer Browser gefunden habe ist, dass der Shifkey wahr wird in Computer bei der Eingabe von # und *, aber das gleiche ist falsch in mobilen, weil wir keine Shift-Taste verwenden – Anooj
Sind alle anderen Eigenschaften (zB 'shiftKey ') auch das selbe? – tom