Geben Sie nur die Nummer im Textfeld per javascript onkeypress problem
Ich habe ein html-Textfeld, onkeypress-Ereignis wird eine Funktion aufrufen und die Funktion zur Eingabe sind nur Ziffern (0-9). das ist gut, wenn der Benutzer die Eingabe von direkt.
Das problem wird kommen, wenn der Benutzer kopieren und fügen Sie einige Zeichen oder Zeichenfolge in das Textfeld ein. Ich weiß nicht, Wann soll ich anrufen, dass die JavaScript-Funktion zum validieren eingefügten Werte sind die Nummer oder Char.
Irgendeine Idee?
- sollten Sie eine Validierung auf dem server sowieso . Bezüglich deines aktuellen Problems , versuchen Sie es mit dem onchange-Ereignis .
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden kann, können Sie versuchen, verwenden onchange-Ereignis und dann prüfen mit regex..
onchange
Veranstaltung.Können Sie eines der neuen HTML5-Formular-tags als
<input type=number" \>
oder<input type="range" />
.Haben Sie halten nicht schriftlich eigenes Skript hier?
Verwende ich jQuery MaskedInput und es funktioniert perfekt für dieses
Ich vermute, dass dies ist, weil Sie false zurückgeben, für jeden nicht-numerische Eingabe.
Können Sie entweder die Forschung, wie zu identifizieren, die Dinge wie Strg+C, oder wechseln Sie zu einem blacklist-Ansatz. Sie wirklich nur wollen, zu verbieten, nicht-numerische druckbare Zeichen, so können Sie wahrscheinlich tun dies mit einem codepoint-Bereich.
Wenn Sie mit normalen Javascript, verwenden Sie die
object.onpaste = handler;
z.B.
Wohl besser
onchange
Und mit einer Bibliothek wie jQuery zu tun es für Sie schön ist.
Aber wenn Sie möchten, lernen Sie das Innenleben von javascript... es selbst zu tun! Manchmal ist es besser, das Rad neu zu erfinden, wenn das lernen.
onpaste
ist nur IE.Ein anderer Ansatz könnte die Verwendung
setInterval
erstellen Sie Ihre eigenen (pseudo -) change listener für Formularfelder. Sehen dieses jsfiddle für ein Beispiel.