2010-07-30 2 views
19

Ich versuchte die <input type="number" />, aber auf Opera, die eine seltsame Eingabefeld mit einem "nach oben und unten" Handler gekoppelt. Was ich erwartet habe, war ein normales Textfeld, das, sobald Sie sich darauf konzentriert haben, statt der Alphabete die Zahlentastatur auffordert. Ist das überhaupt möglich?Welcher Eingabefeldtyp zwingt die mobile Tastatur mit Nummernblock, wenn sie fokussiert wird?

p.s. Ich versuche nicht zu validieren. Es wäre eine nette Benutzererfahrung, das ist alles.

Antwort

13

type = "Nummer" ist HTML5 und viele Telefone unterstützen HTML5 nicht. Für eine Anrufverbindung können Sie type = "tel" oder <A href="wtai://wp/mc;600112233">Special A</A> verwenden. Sie sollten sich auch CSS WAP extensions (page 56) ansehen.

EDIT 10/2015:
Die meisten wenn nicht alle Smartphones unterstützen HTML5 und CSS3, also type="number" ist der beste Weg.

+0

Ich lese das Dokument, nichts da, das eine Zahl Pad prompt instad Alphabet macht, so sieht es nicht aus wie die Zukunft hält keine Hoffnung für Web-Entwickler :( Ich nehme das als endgültige Antwort – Ayyash

+0

@Ayyash, sry ich denke, ich habe mit Input und a verwirrt. Wie auch immer Input Type = "Zahl" ist HTML5. Sie könnten in iPhone und Android-Handys verwenden, und ich hoffe, in Zukunft Nokia Browser. – fravelgue

19

Die offizielle HTML5 Weise Telefonnummern zu handhaben ist:

<input type="tel"> 

Sie können das „seltsame Eingabefeld“ nicht gemocht haben Sie mit Opera bekamen, wenn Sie <input type="number" /> verwendet, aber das ist wirklich die geeignete Art von Eingabe Wenn Sie festlegen möchten, dass Besucher einen numerischen Wert eingeben müssen.

+0

aber die "type = number" nicht die Ziffernblock, ich werde versuchen, die Tel-Typ – Ayyash

+0

ich mit Opera 10 auf Windows Mobile 6.5, ich glaube, es hat einige HTML5 drin, ich weiß, ive gesehen work, input type didnt work though – Ayyash

+0

The 'type="number"' attribute isn't necessarily supposed to bring up a number pad. The question is: are you trying to force users to enter in a numeric value, or enter in a phone number? For the former, 'type="number"' is what you want. For the latter, 'type="tel"' (the telephone keypad, including # and *) is what you're looking for. '' isn't an input field; it's a link to dial a phone number. Example: '1-408-555-5555 '. – Dori

10

Dieser Beitrag ist jetzt ungültig. Alle Smartphones unterstützen jetzt HTML5 und CSS3, also fügt das Hinzufügen von type = "number" tatsächlich das Aufrufen des Nummernblocks ein. Ich habe es gerade auf 2 verschiedenen Android-Versionen und einem iPhone überprüft. Nur damit niemand in Zukunft WAP anstelle des korrekten HTML5-Formats ausprobiert.

+6

Basierend auf meinen Tests zieht 'type = 'number' die volle Tastatur mit den auf iOS sichtbaren Zahlen hoch, während 'type =' tel'' den Ziffernblock hochzieht, was anscheinend das Thema ist, nach dem das Poster fragt. Bei Android ziehen sowohl "number" als auch "tel" den Ziffernblock nach oben. – Stan

20

Verwenden pattern="[0-9]*"

  • Beispiel Nummereingabe: <input type="number" pattern="[0-9]*" />

  • Beispiel Telefoneingang: <input type="tel" pattern="[0-9]*" />

Hinweis: Browser, die auf einen Text Standard nicht type="tel" unterstützen Geben Sieein 210 Vorsicht: Die Verwendung von type="number" kann Probleme mit einigen Browsern und der Benutzerfreundlichkeit für Kreditkarten-, Postleitzahlen- und Telefoneingaben verursachen, bei denen ein Benutzer möglicherweise Interpunktion oder ein Komma in der Ausgabe eingeben muss. Referenzen

:

+2

Dies ist die beste und aktuellste Antwort. Danke für Ihre Notizen und die Links, beide waren sehr lehrreich. –

0

Versuchen <input type="number" pattern="/d*"> OR <input type="tel" pattern="/d*"> Dies wird helfen, wenn Sie mit Android arbeiten.

Verwandte Themen