HTML-input, der nimmt nur die zahlen und die + symbol

Ich versuche zu bauen, eine benutzerdefinierte text-Eingabe für Rufnummern, die akzeptiert nur zahlen und die plus - ( + ) - symbol; alle anderen Zeichen müssen, werden verworfen und nicht angezeigt auf dem Feld.

Ich versuche zu tun, diese mit einem event-handler (onkeydown/onkeypress) und verwerfen von Eingaben entsprechend andere Tasten. Allerdings kann ich nicht herausfinden, eine cross-browser Weg, es zu tun. Hier sind die Ansätze, die ich ausprobiert habe und nicht funktioniert:

  • Mit dem onkeypress-event und suchen bei event.Schlüssel, um herauszufinden, welche Taste gedrückt wurde: funktioniert nicht in Chrome (siehe http://caniuse.com/keyboardevent-key). Gibt es eine cross-browser-Lösung?

  • Mit der onkeycode Veranstaltung und suchen bei event.keyCode: funktioniert nicht, wenn wir müssen, drücken Sie mehrere Tasten, um das drucken eines Zeichens (zum Beispiel ein Englisches Tastatur-layout erfordert das drücken von Shift und = geben +). Darüber hinaus ermöglicht es Sonderzeichen wie !@#$%ˆ&*() zu erscheinen, denn diese werden angezeigt, wenn durch drücken der Umschalttaste und einer Zahl. (Dies ist der Ansatz JavaScript keycode erlauben, Anzahl und plus-symbol wird nur, aber es hilft mir nicht viel ;))

  • Mit dem HTML-Attribut "pattern": dies scheint nicht wirklich zu verhindern, dass Menschen schreiben, was auch immer Sie Lust haben.

Dank!

  • Könnten Sie die onkeyup-Ereignis die gesamte Eingabe filtern unerwünschte Zeichen mit regexp
  • Möglich, Duplikat der JavaScript keycode erlauben, Anzahl und plus-symbol wird nur
  • Nein, es ist nicht doppelt. Der Ansatz folgte, der link ist genau einer der Ansätze, die ich ausprobiert und funktioniert nicht. Der Grund, warum es nicht funktioniert, ist erklärt im ersten post, zweiter Aufzählungspunkt.
  • Der Ansatz kann nicht funktionieren, aber die Frage ist im wesentlichen die gleiche. Das es ein Duplikat ist. Egal, @RobinvdA vorgeschlagene Ansatz ist wahrscheinlich zu sein, was Sie wollen.
  • Wenn Sie die regexp ' Ing der Wert eines input-und Hygienisierung es dann der cursor wird gezwungen, an das Ende der textbox, es sei denn, Sie wissen, dass cross-browser-Lösung für die Aufrechterhaltung der cursor-position. Ich habe stoßen viel ärgerlich Schnittstellen, die ausführen, dass die operation unnötig und hindern mich daran fixieren etwas in der Mitte des Textes.
InformationsquelleAutor unpollito | 2016-05-23
Schreibe einen Kommentar