Richtige Art und Weise zu beschränken-text-Eingabe von Werten (z.B. nur zahlen)

Ist es möglich, implementieren eine input erlaubt, geben Sie nur zahlen ohne manuelle Handhabung von event.target.value?

In Reagieren, es ist möglich, zu definieren value - Eigenschaft und danach die Eingabe-Wechsel grundsätzlich verpflichtet, den Wert (nicht möglich es zu ändern, ohne value ändern). Sehen Beispiel. Und es funktioniert Prima ohne irgendwelche Anstrengungen.

In den Winkel-2 es ist möglich, zu definieren [value], aber es wird nur setzen Sie den Wert zunächst, und danach input ist nicht daran gehindert, die änderungen.

Ich war Herumspielen mit ngModel und [value] /(input) finden Sie Beispiel.

Aber in der Ausführung gibt es wesentliche problem:

  1. wenn Sie Typ 10 (Modell Wert ist 10; Eingabe-Wert ist 10) - richtig
  2. wenn Sie Typ 10d danach (Modell-Wert ist 10 - nicht geändert, alle nicht-Ziffern entfernt wurde; input Wert ist, 10d) - falsch, weil es das Modell Wert ist der gleiche wie vor
  3. wenn Sie Typ-10d3 - (Modell-Wert liegt bei 103; Eingabe-Wert 103) - richtig

Wie zu tun, dass einfach (auf den ersten Blick) - Komponente, ohne manuelles handling event.target.value?...

UPDATE ich bin nicht auf der Suche nach native HTML5 input[number] element hier. Zahlen Eingabe hier ist nur für das Beispiel - es könnten mehr Aufgaben, wenn ich Sie brauche, um beschränken Sie die Eingabe von text.

Darüber hinaus input[number] 1) nicht einschränken, mir von der Eingabe 10ddd und 2) (weniger wichtig) enthält Pfeile, die brauche ich nicht.

Und das problem hier ist verhindern Benutzer von der Eingabe etwas über die eingeschränkten Werte, statt ermöglichen zur Eingabe nichts und validieren es danach

  • Ich hasse es, dass wir immer zu dieser Diskussion. Irgendwann müssen wir einen standard-Eingang, der tut dies aus der box. Es akzeptieren sollte, wie viele Ziffern, nicht zulassen, dass Sie, um Zeichen einzugeben, negativen oder nicht. Ich weiß, es ist ein HTML-5 Zahl-Ding, aber wir haben nicht erreicht das nirvana. Ich müde von schreiben müssen diesen code für jeden Rahmen, etc..
  • Dies könnte gelöst werden, mit der die Antwort gegeben: stackoverflow.com/questions/41465542/...
InformationsquelleAutor ValeriiVasin | 2016-05-25
Schreibe einen Kommentar