2012-09-28 28 views
7

So che ci sono molte domande su questo problema già risposto, ma nessuna delle soluzioni fornite ha funzionato per me.tipo di input = il numero della tastiera ha il punto disattivato in Galaxy Tab

Sto sviluppando un sito Web per un'azienda che utilizza Samsung Galaxy Tab. Ci sono molti input in cui i contenuti sono numeri decimali. Così ho provato con <input type="number" />. Ma il navigatore mostra una tastiera con punti e virgola disabilitati. Non solo, ma i separatori onfocus, punto o virgola vengono rimossi dal valore.

Ho già provato a impostare un passo come "0,1", "0,01", "0,1", "0,01", "qualsiasi", ecc, provato min, max, motivo con un'espressione regolare che corrisponde al decimale numeri ... Non ci sono consigli nello stackoverflow lasciato a provare, e questo è terribile haha.

Sto utilizzando un Samsung Galaxy Tab 10.1 con il browser predefinito, ma non ho trovato alcun documento che parli di alcun limite della sua implementazione HTML5. Quindi oggigiorno non so se c'è qualcosa che mi manca, se c'è qualcosa che posso provare, o se qualcosa sa che è colpa di Galaxy Tab, quindi non posso fare nulla per questo.

Un sacco di ringraziamenti in anticipo.

+0

Hai provato l'installazione di Chrome sul tablet e usarlo per testare gli ingressi? Installare Chrome e renderlo il browser predefinito è la prima cosa che ho fatto su entrambi i tablet Galaxy Tab 3 10.1. –

+0

So che sarebbe un requisito irrinunciabile per il team di destinazione, non stiamo parlando di "smetti di usare IE", ma di "hai un prodotto principale ma devi comunque utilizzare il browser predefinito". Grazie comunque per il consiglio. Alla fine abbiamo finito per sviluppare una tastiera numerica HTML semplice e personalizzata. –

+1

Vedi questo come un problema su Samsung Galaxy S3. Sembra essere un problema con l'app 'Samsung tastiera', piuttosto che il browser AOSP o Chrome. – contrebis

risposta

2

Lo HTML5 specification for input with a type of number indica che qualsiasi stringa che può essere analizzata come valid floating point number deve essere consentita. Ciò include in particolare . nonché -, + e e.

Quindi l'implementazione sul Samsung Galaxy Tab 10.1 non è valida.

Se è necessario supportare questo dispositivo, potrebbe essere necessario utilizzare type="text" e convalidare la stringa. Ciò non comporrà automaticamente la tastiera corretta sui dispositivi che dispongono di tastiere software.

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

intendevi dire che l'implementazione di '' nel browser di Android non è valida? –

+0

o la tastiera virtuale? –

+0

@Mithun, questo è quello che non posso credere, che il tipo di input html5 = numero per il browser nativo di un Samsung Galaxy Tab sia bacato, o la tastiera virtuale non è adatta ai numeri in virgola mobile, dove nessuno al di fuori sta parlando a tale proposito. –

4

In namespace Android è possibile utilizzare:

android:inputType="numberDecimal" 

che consente di inserire il ""

+0

Scusa, stai parlando di app andorid sviluppo web? –

+0

Sto parlando di XML per Android. Vedo che stai facendo HTML5, ma presumo che i tipi di input siano simili. I decimali sarebbero un requisito comune, quindi non posso credere che l'implementazione Samsung non sia valida – CocoNess

+0

La tastiera virtuale Samsung nel browser non è effettivamente valida. – oldwizard

4

è necessario estendere la classe WebView e usare il suo oggetto come questo

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 domanda riguarda HTML5 > Sto sviluppando un sito Web per un'azienda che utilizza Samsung Galaxy Tab. Ci sono molti input in cui i contenuti sono numeri decimali. Così ho provato con

+0

@ ÁxelCostasPena Ecco come otterrete un punto nel vostro tastierino numerico. Le versioni più recenti di androids non sono disponibili in Webview per impostazione predefinita. Le modifiche devono essere apportate sul lato posteriore (lato Android) –

+0

Salvato il nostro giorno. Grazie. –