2010-07-30 12 views
19

Probé el <input type="number" /> pero en Opera que genera un cuadro de entrada extraño junto con un controlador "hacia arriba y hacia abajo". Lo que esperaba era un campo de texto regular que una vez que se enfoca en él, solicita el teclado numérico en lugar de los alfabetos. ¿Es eso posible?¿qué tipo de campo de entrada obliga al teclado numérico del teclado numérico a aparecer cuando está enfocado?

p.s. No estoy tratando de validar. Sería una buena experiencia de usuario, eso es todo.

Respuesta

13

type = "number" es HTML5 y muchos teléfonos no son compatibles con HTML5. Para el enlace de llamada, puede usar type = "tel" o <A href="wtai://wp/mc;600112233">Special A</A>. También debe mirar CSS WAP extensions (page 56).

EDITAR 10/2015:
La mayoría, si no todos los teléfonos inteligentes compatibles con HTML5 y CSS3, por lo type="number" es la mejor manera.

+0

, leí ese documento, nada allí que hace que un teclado numérico pregunte por el alfabeto, por lo que no parece que el futuro contenga ninguna esperanza para los desarrolladores web :( lo tomaré como una respuesta final – Ayyash

+0

@Ayyash, sry i Creo que confussed con la entrada y a. De todos modos, input type = "number" es HTML5. Podrías usar en teléfonos iPhone y Android y espero en futuro navegador Nokia. – fravelgue

19

La forma oficial de HTML5 para manejar números de teléfono es:

<input type="tel"> 

posible que no haya gustado la "caja de entrada extraña" que tienes con Opera cuando se utiliza <input type="number" />, pero que realmente es el tipo apropiado de entrada área cuando desea que los visitantes ingresen un valor numérico.

+0

pero el "tipo = número" no solicitó el teclado numérico, probaré el tipo de teléfono – Ayyash

+0

usando la opera 10 en Windows Mobile 6.5, creo que tiene algo de HTML5, sé que he visto 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

Esta publicación no es válida. Todos los teléfonos inteligentes son compatibles con HTML5 y CSS3 ahora, por lo que agregar type = "number" de hecho activa el teclado numérico para que aparezca el pop-up. Acabo de comprobarlo en 2 versiones diferentes de Android y un iPhone. Solo para que en el futuro nadie intente WAP en lugar del formato HTML5 correcto.

+6

Basado en mis pruebas, 'type = 'number'' saca el teclado completo con números visibles en iOS, mientras que' type =' tel'' levanta el teclado numérico, que parece ser lo que el afiche pregunta. En Android, tanto 'number' como' tel' abren el teclado numérico. – Stan

20

Uso pattern="[0-9]*"

  • Ejemplo de introducción de números: <input type="number" pattern="[0-9]*" />

  • de entrada Ejemplo teléfono: <input type="tel" pattern="[0-9]*" />

Nota: Los navegadores que no soportan type="tel" tomaría el valor de un texto tipo

Cuidado con El uso de type="number" puede causar problemas con algunos navegadores y la experiencia del usuario para tarjetas de crédito, código postal y entradas de teléfono donde un usuario podría necesitar ingresar signos de puntuación o una coma en la salida.

Referencias:

+2

Esta es la mejor y más actual respuesta. Gracias por sus notas y los enlaces, ambos fueron muy instructivos. –

0

intenta <input type="number" pattern="/d*"> O <input type="tel" pattern="/d*"> Esto ayudará si se trabaja con Android.

Cuestiones relacionadas