2012-09-28 8 views
7

Wiem, że jest wiele pytań na temat tej kwestii już zareagował, ale żadne z podanych rozwiązań nie zadziałało.typ danych = numer klawiatury ma wyłączoną kropkę w Galaxy Tab

Zajmuję się tworzeniem stron internetowych dla przedsiębiorstw korzystających z tabletu Samsung Galaxy Tab. Istnieje wiele danych wejściowych, których zawartość to liczby dziesiętne. Więc próbowałem z <input type="number" />. Ale nawigator wyświetla klawiaturę z kropką i przecinkiem wyłączonym. Z tej wartości usuwa się nie tylko to, ale także skupienia, kropki lub przecinki.

Próbowałem już ustawić krok w rodzaju "0,1", "0,01", "0,1", "0,01", "any", itp., Wypróbowany min, max, wzór z wyrażeniem regularnym, które odpowiada dziesiętnym Liczby ... Nie ma żadnych rad w stackoverflow, aby spróbować, a to jest straszne haha.

Używam Samsung Galaxy Tab 10.1 z domyślną przeglądarką, ale nie znalazłem żadnego dokumentu mówiącego o jakichkolwiek ograniczeniach jego implementacji html5. W dzisiejszych czasach nie wiem, czy jest coś, czego mi brakuje, czy jest coś, co mogę wypróbować, czy też coś wie, że to wina Galaxy Tab, więc nie mogę nic na to poradzić.

Bardzo dziękuję z góry.

+0

Czy próbowałeś instalacji Chrome na tablecie i użyciu go do przetestowania wejść? Zainstalowanie Chrome i uczynienie go domyślną przeglądarką to pierwsza rzecz, którą zrobiłem na obu tabletach Galaxy Tab 3 10.1. –

+0

Wiem, że byłoby to trudne wymaganie dla zespołu docelowego, nie mówimy o "proszę przestać używać IE", ale o "masz produkt wiodący, ale musisz mimo to unikać używania domyślnej przeglądarki". Dzięki za poradę. W końcu opracowaliśmy prostą niestandardową klawiaturę numeryczną w języku HTML. –

+1

Zobacz jako problem na Samsung Galaxy S3. Wydaje się być problemem z aplikacją "Klawiatura Samsung", a nie z przeglądarki AOSP lub przeglądarki Chrome. – contrebis

Odpowiedz

2

HTML5 specification for input with a type of number stwierdza, że ​​każdy ciąg znaków, który można przeanalizować jako valid floating point number, powinien być dozwolony. Obejmuje to w szczególności ., a także -, + i e.

Więc wdrożenie na Samsung Galaxy Tab 10.1 jest nieprawidłowe.

Jeśli potrzebujesz obsługi tego urządzenia, być może będziesz musiał użyć type="text" i sprawdź poprawność łańcucha. Nie spowoduje to automatycznego otwarcia prawidłowej klawiatury na urządzeniach z klawiaturami programowymi.

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

miałeś zamiar powiedzieć, że implementacja '' w przeglądarce Androida jest nieprawidłowa? –

+0

lub miękka klawiatura? –

+0

@Mithun, to jest to, w co nie mogę uwierzyć, że albo typ wejścia html5 = numer dla rodzimej przeglądarki karty Samsung Galaxy Tab jest błędny, albo miękka klawiatura jest notowana do liczb zmiennoprzecinkowych, gdzie nikt nie rozmawia o tym. –

4

w Android nazw można użyć:

android:inputType="numberDecimal" 

która pozwala, aby wprowadzić ""

+0

Przepraszam, czy mówisz o andorid apps os web development? –

+0

Mam na myśli XML dla Androida. Widzę, że robisz HTML5, ale zakładam, że typy wejściowe są podobne. Dziesiątki są powszechnym wymogiem, więc nie mogę uwierzyć, że implementacja Samsunga jest nieważna. – CocoNess

+0

Klawiatura programowa Samsung w przeglądarce jest rzeczywiście nieważna. – oldwizard

4

Trzeba rozszerzyć swoją klasę Webview i używać jej przedmiot tak

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

Pytanie dotyczy HTML5 > Zajmuję się tworzeniem stron internetowych dla przedsiębiorstw korzystających z tabletu Samsung Galaxy Tab. Istnieje wiele danych wejściowych, których zawartość to liczby dziesiętne. Próbowałem więc z

+0

@ ÁxelCostasPena W ten sposób otrzymasz kropkę w swojej klawiaturze numerycznej. W najnowszej wersji Androidów nie ma go domyślnie w widoku sieciowym. Zmiany należy wprowadzić na zapleczu (strona z Androidem). –

+0

Uratowaliśmy nasz dzień. Dziękuję Ci. –