HTML-Eingabe, die nur Zahlen und das + -Symbol @ akzeptie

Ich versuche, eine benutzerdefinierte Texteingabe für Telefonnummern zu erstellen, die nur Zahlen und das Pluszeichen (+) akzeptiert. Alle anderen Zeichen müssen verworfen und nicht auf dem Feld angezeigt werden.

Ich versuche dies mit einem Event-Handler (Onkeydown / Onkeypress) und verwerfe Eingaben, die anderen Tasten entsprechen. Ich kann jedoch keine browserübergreifende Methode finden, um dies zu tun. Hier sind die Ansätze, die ich ausprobiert habe und die nicht funktionieren:

Unter Verwendung des Ereignisses onkeypress und unter event.key, um herauszufinden, welche Taste gedrückt wurde: Funktioniert in Chrome nicht (siehehttp: //caniuse.com/keyboardevent-ke). Gibt es eine browserübergreifende Problemumgehung?

Verwenden Sie das Ereignis onkeycode und schauen Sie sich event.keyCode an: funktioniert nicht, wenn Sie mehrere Tasten drücken müssen, um ein Zeichen zu drucken (für ein englisches Tastaturlayout müssen Sie beispielsweise die Umschalttaste und = drücken, um + zu geben). Außerdem können Zeichen wie! @ # $% ˆ & * () angezeigt werden, wenn Sie die Umschalttaste und eine Zahl drücken. (Dies ist der Ansatz inJavaScript-Schlüsselcode nur Nummer und Pluszeichen zulassen, aber es hilft mir nicht viel;))

Verwenden Sie das HTML-Musterattribut: das scheint die Leute nicht wirklich davon abzuhalten, zu schreiben, worauf sie Lust haben.

Vielen Dank

Antworten auf die Frage(14)

Ihre Antwort auf die Frage