2012-06-21 14 views
15

Nuestro cliente nos quiere ver el teclado numérico para un campo de entrada, así que básicamente he creado un campo como:Samsung Galaxy Tablet no permite introducir números de punto flotante a las entradas con el tipo de "número"

<input type="number" name="quantity" step=".01" value="0.00" />

Sin embargo , Galaxy Tablet borra "." y combina números antes y después, también desactiva "." en el teclado.

¿Hay alguna otra manera de resolver este problema o mostrar el teclado numérico en el campo de entrada cuando se usa type = "text"?

Nota: He intentado usar el atributo patrón (que funciona en el iPhone). Probé este problema en varios dispositivos Android con Android 2.1+. No encontré este error en ningún otro dispositivo HTC y Samsung.

+0

es por casualidad su tableta establece en formato de número europeo? - 'punto decimal' y' coma' se usan inversamente en el formato de número europeo – Kshitij

+0

lamentablemente no, estoy probando en el teclado de EE. UU. y también pruebas de clientes en Australia. – Korhan

+0

¿Qué Galaxy-tab y qué versión de Android? – chkdsk

Respuesta

3

Una solución consiste en utilizar type="tel" en lugar de type="number". Desafortunadamente en iOS type="tel" no aparece el carácter , en el teclado (al menos no lo encontré allí). Puede consultar el agente de usuario para dispositivos iOS y luego cambiar type en "number".

1

¿Ha intentado establecer el paso en "cualquiera". Al igual que:

<input type="number" name="quantity" step="any" /> 

Saqué el "valor" porque creo que deberías hacerlo, aunque sólo para las pruebas

+1

intenté esto. pero aún no hay una clave decimal. – Arvin

7

Sí, hay otra manera.

  1. Camino 1: no utilice type="number" pero el uso de type="text"
  2. manera 2: Aplicar 1 manera sólo para los teléfonos Android. Detectar User-Agent, etc.
  3. Forma 3: Aplicar el método 1 solo para implementaciones defectuosas. Ver: What models of Samsung smartphones have missing period for html5 input type="number"?
  4. Modo 4: Use type="tel"' solo para Android o roto. (no se puede usar en el iPhone como sin período)
  5. Manera 5: use type="text" y luego javascript con un comportamiento personalizado. Ver:

Periodo siempre muestra: http://jsbin.com/heqeduyi/1/

Período muestra una vez 3 dígitos: http://jsbin.com/yinaweho/1

-1

a tener punto decimal en el teclado numérico en los dispositivos Android de Samsung utilizar esto en que EditarTexto:

android:inputType="numberDecimal" 
1

Hago esto en C#/Xamarin y lo que funciona para mí en el lado del código (creo dinámicamente formularios) está usando lo siguiente:

EditText edittext1 = new EditText(view.Context); 
    edittext1.InputType = Android.Text.InputTypes.NumberFlagDecimal; 

espero que ayude a alguien

Cuestiones relacionadas