2013-11-26 10 views
8

Na niektórych urządzeniach z Androidem tworzenie pola wprowadzania numeru HTML5 nie powoduje wyświetlenia żadnego miejsca po przecinku.Brak miejsca dziesiętnego w danych wejściowych HTML5 na niektórych urządzeniach z systemem Android/Chrome

<input type="number" step="0.001" min="0" name="foo" /> 

To kłopotliwe, ponieważ próbuję napisać aplikację HTML5 + JavaScript. Działa na IOS w tej chwili, a także niektóre (większość?) Urządzenia z systemem Android. Po prostu niektóre wersje/marki Androida nie pokazują dziesiętnego miejsca na klawiaturze numerycznej, która się pojawia.

E.g. W Galaxy S3 sama aplikacja działa dobrze, ale jeśli ten sam kod zostanie otwarty w Chrome, nie otrzymasz przecinka dziesiętnego. Używam tej kombinacji, aby przetestować i spróbować obejść problem.

Oto pytanie - czy istnieje jakikolwiek sposób użycia Javascript do WYKRYWANIA, że klawiatura nie będzie pokazywać przecinka dziesiętnego? W takich okolicznościach mogę wtedy programowo zmienić typ number na text, ale chcę to zrobić tylko dla urządzeń, które są niezbędne.

(Alternatywnie, czy jest jakiś sposób, aby wymusić dziesiętny pojawiać na klawiaturze? Moje badania do tej pory wskazują, że nie ma, dlatego pytam o obejście zamiast.)

Próbowałem już używać różnych kroków (any, 0.1, itp.), Ustawiania wzorców, ustawiania wartości początkowej na dziesiętną (value="0.1") bez skutku.

Próbowałem wykryciu, że przeglądarka może obsługiwać pól numerycznych, ale to raporty z powrotem jako „prawdziwy” ... Urządzenia mogą obsługiwać pól numerycznych, po prostu obsłużyć je źle:

var i = document.createElement("input"); 
i.setAttribute("type", "number"); 
i.setAttribute("step", "0.001"); 
alert(i.type + ' and ' + i.step); // gives "number and 0.001", so the device has stored the values and claims to support them 

Nie jestem pewien, co wypróbować w następnej kolejności ... jakichkolwiek pomysłów ze społeczności?

+0

zobaczyć http://stackoverflow.com/questions/12514162/google-chrome-on-android-and-only -android-does-not-allow-decimal-with-type-num i przeczytaj komentarze. Czy to ten sam problem? – epascarello

+0

Poważnie wątpię, że to by miało znaczenie, ale nie musisz używać '.setAttribute()' w takich rzeczach jak "typ" i "krok"; są to właściwości dostępne bezpośrednio w węźle DOM (ponieważ twoje 'alert()' jest zakodowane), więc możesz po prostu napisać 'i.type =" number ";' itd. – Pointy

+0

@epascarello Czytałem ten wątek, ale (a) dotyczy to aplikacji (nie Chrome per se) i (b) nie było tam opublikowanych odpowiedzi. Ten wątek został napisany ponad rok temu, więc od tego czasu może być coś nowego. – caponica

Odpowiedz

0

Spróbuj ustawić znacznik min do 0.0 zamiast 0

<input type="number" step="0.001" min="0.0" name="foo" />

Powiązane problemy