2012-09-28 26 views
7

Sé que hay muchas preguntas sobre ese problema ya respondidas, pero ninguna de las soluciones proporcionadas ha funcionado para mí.tipo de entrada = teclado numérico tiene punto deshabilitado en Galaxy Tab

Estoy desarrollando una web para una empresa que usa Samsung Galaxy Tab. Hay muchas entradas cuyos contenidos son números decimales. Así que lo intenté con <input type="number" />. Pero el navegador muestra un teclado con punto y coma desactivados. No solo este, sino los separadores de punto, punto o coma se eliminan del valor.

Ya he intentado establecer un paso como "0,1", "0,01", "0,1", "0.01", "cualquier", etc., mínimo, máximo, patrón con una expresión regular que coincida con el decimal números ... No hay consejos en stackoverflow para probar, y esto es terrible jaja.

Estoy usando un Samsung Galaxy Tab 10.1 con navegador predeterminado, pero no he encontrado ningún documento que mencione ninguna limitación de su implementación en html5. Así que hoy en día no sé si hay algo que me falta, si hay algo que puedo intentar, o si algo sabe que es culpa de Galaxy Tab así que no puedo hacer nada por esto.

Muchas gracias de antemano.

+0

Ha intentado instalar Chrome en la tableta y que sirva para comprobar las entradas? Instalar Chrome y convertirlo en el navegador predeterminado es lo primero que hice en mis dos tabletas Galaxy Tab 3 10.1. –

+0

Sé que sería un requisito difícil para el equipo objetivo, no estamos hablando de "por favor, deje de usar IE", sino de "usted tiene un producto líder, pero de todos modos debe evitar el uso del navegador predeterminado". Gracias por el consejo de todos modos. Finalmente terminamos desarrollando un simple teclado numérico HTML personalizado. –

+1

Vea esto como un problema en Samsung Galaxy S3. Parece ser un problema con la aplicación 'Teclado Samsung', en lugar del navegador AOSP o Chrome. – contrebis

Respuesta

2

El HTML5 specification for input with a type of number indica que se debe permitir cualquier cadena que se pueda analizar como valid floating point number. Eso incluye específicamente ., así como -, + y e.

Por lo que la implementación en el Samsung Galaxy Tab 10.1 no es válida.

Si necesita admitir este dispositivo, es posible que deba usar type="text" y validar la cadena. Esto no mostrará automáticamente el teclado correcto en los dispositivos que tienen teclados de software.

<input type="text" pattern="^-?(?:[0-9]+|[0-9]*\.[0-9]+)$" name="NumberInput"> 
+0

¿Querías decir que la implementación de '' en el navegador de Android no es válida? –

+0

o el teclado suave? –

+0

@Mithun, eso es lo que no puedo creer, que el tipo de entrada html5 = número para el navegador nativo de un Samsung Galaxy Tab es defectuoso, o el teclado virtual no está marcado a números flotantes, donde nadie está hablando afuera sobre eso. –

4

En androide espacio de nombres que puede utilizar:

android:inputType="numberDecimal" 

que le permite introducir el ""

+0

Disculpe, ¿está hablando de aplicaciones andorid para el desarrollo web? –

+0

Estoy hablando de XML para Android. Veo que estás haciendo HTML5, pero supongo que los tipos de entrada son similares. Los decimales serían un requisito común, así que no puedo creer que la implementación de Samsung no sea válida – CocoNess

+0

El teclado de Samsung en el navegador no es válido. – oldwizard

4

Es necesario extender la clase de vista web y utilizar su objeto como éste

public class WebViewExtended extends WebView{ 

    public WebViewExtended(Context context) { 
     super(context); 
    } 

    public WebViewExtended(Context context, AttributeSet attrs) { 
     super(context, attrs);  
    } 

    public WebViewExtended(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    @Override 
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) { 
     InputConnection connection = super.onCreateInputConnection(outAttrs); 
     if ((outAttrs.inputType & InputType.TYPE_CLASS_NUMBER) == InputType.TYPE_CLASS_NUMBER) 
     { 
      outAttrs.inputType |= InputType.TYPE_NUMBER_FLAG_DECIMAL; 
     } 

     return connection; 
    } 

} 
+0

La pregunta es sobre HTML5 > Estoy desarrollando una web para una empresa que está utilizando Samsung Galaxy Tab. Hay muchas entradas cuyos contenidos son números decimales. Así que probé con

+0

@ ÁxelCostasPena Así es como obtendrá un punto en su teclado numérico. Como las últimas versiones de androids no lo tienen en webview por defecto. Los cambios deben hacerse en la parte posterior (lado de Android) –

+0

Guardado nuestro día. Gracias. –

Cuestiones relacionadas