2012-09-28 16 views
7

Ich weiß, dass es viele Fragen zu dieser Frage bereits beantwortet, aber keine der angegebenen Lösungen hat für mich funktioniert.eingabetyp = nummer tastatur ist in Galaxy Tab deaktiviert dot

Ich entwickle ein Web für ein Unternehmen, das Samsung Galaxy Tab verwendet. Es gibt viele Eingaben, deren Inhalt Dezimalzahlen sind. Also habe ich es mit <input type="number" /> versucht. Der Navigator zeigt jedoch eine Tastatur mit deaktivierten Punkten und Kommas an. Nicht nur das, sondern auch Fokus-, Punkt- oder Kommatrennzeichen werden aus dem Wert entfernt.

Ich habe bereits versucht, einen Schritt wie "0,1", "0,01", "0,1", "0,01", "any", etc, versuchte min, max, Muster mit einer Regex, die Dezimal entspricht Zahlen ... Es gibt keine Ratschläge in stackoverflow um es zu versuchen, und das ist schrecklich haha.

Ich benutze ein Samsung Galaxy Tab 10.1 mit Standard-Browser, aber ich habe kein Dokument über eine Beschränkung der HTML5 Implementierung gefunden. So weiß ich heute nicht, ob es etwas gibt, das mir fehlt, ob ich etwas ausprobieren kann oder ob etwas weiß, dass Galaxy Tab schuld ist, also kann ich nichts dafür tun.

Vielen Dank im Voraus.

+0

Haben Sie versucht, Chrome auf dem Tablet zu installieren und benutzen, um die Eingaben zu testen? Die Installation von Chrome als Standardbrowser ist das erste, was ich auf beiden Galaxy Tab 3 10.1-Tablets gemacht habe. –

+0

Ich weiß, das wäre eine harte Anforderung für das Zielteam, wir sprechen nicht über "Bitte aufhören IE zu verwenden", sondern über "Sie haben ein führendes Produkt, aber Sie müssen sowieso Avoi Standardbrowser verwenden". Danke für den Hinweis trotzdem. Schließlich haben wir eine einfache benutzerdefinierte numerische Tastatur entwickelt. –

+1

Sehen Sie dies als ein Problem auf dem Samsung Galaxy S3. Scheint eher ein Problem mit der "Samsung Tastatur" -App als dem AOSP-Browser oder Chrome zu sein. – contrebis

Antwort

2

Die HTML5 specification for input with a type of number besagt, dass jede Zeichenfolge, die als valid floating point number analysiert werden kann, zulässig sein sollte. Hierzu gehören insbesondere . sowie -, + und e.

So ist die Implementierung auf dem Samsung Galaxy Tab 10.1 ungültig. Wenn Sie dieses Gerät unterstützen müssen, müssen Sie möglicherweise type="text" verwenden und die Zeichenfolge validieren. Dadurch wird die korrekte Tastatur auf Geräten mit Softwaretastaturen nicht automatisch geöffnet.

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

Sie wollten sagen, dass die Implementierung von '' im Android Stock Browser ungültig ist? –

+0

oder die Soft-Tastatur? –

+0

@Mithun, das ist, was ich nicht glauben kann, dass entweder die html5 Eingabe Typ = Nummer für den nativen Browser eines Samsung Galaxy Tab ist fehlerhaft, oder die Soft-Tastatur ist nicht zu Floating-Point-Nummern, wo niemand draußen spricht über das. –

4

In android-Namespace können Sie:

android:inputType="numberDecimal" 

Welche Sie zur Eingabe ermöglicht das ""

+0

Sorry, sprichst du über Android-Anwendungen os Web-Entwicklung? –

+0

Ich spreche über XML für Android. Ich sehe, dass Sie HTML5 machen, aber ich nehme an, dass die Eingabearten ähnlich sind. Dezimalzahlen wären eine häufige Anforderung, daher kann ich nicht glauben, dass die Samsung-Implementierung ungültig ist. – CocoNess

+0

Samsung Soft-Tastatur im Browser ist in der Tat ungültig. – oldwizard

4

Sie benötigen webview Klasse zu erweitern und nutzen ihre Aufgabe wie diese

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

Die Frage ist über HTML5 > Ich entwickle ein Web für ein Unternehmen, das Samsung Galaxy Tab verwendet. Es gibt viele Eingaben, deren Inhalt Dezimalzahlen sind. Also habe ich es mit

+0

@ ÁxelCostasPena probiert. So erhalten Sie einen Punkt in Ihrem numerischen Tastenfeld. Wie die neuesten Versionen von androids haben sie es standardmäßig nicht in der Webansicht. Die Änderungen sind am Backend (Android-Seite) vorzunehmen. –

+0

Unser Tag gerettet. Vielen Dank. –

Verwandte Themen