2013-11-26 9 views
8

Auf einigen Android-Geräten wird beim Erstellen eines Eingabefeldes für HTML5-Nummern keine Dezimalstelle angezeigt.Keine Dezimalstelle in der Eingabe der HTML5-Nummer auf einigen Android-Geräten/Chrome

Dies ist mühsam, da ich versuche, eine HTML5 + Javascript App zu schreiben. Es funktioniert im Moment auf iOS und einigen (meisten?) Android-Geräten. Es ist nur so, dass einige Android-Versionen/Marken die Dezimalstelle auf der Zahlentastatur nicht anzeigen.

z. Auf einem Galaxy S3 funktioniert die App selbst, aber wenn derselbe Code in Chrome geöffnet wird, erhalten Sie kein Dezimalzeichen. Ich verwende diese Kombination, um zu testen und zu versuchen, den Fehler zu umgehen.

Hier ist die Frage - gibt es eine Möglichkeit, JavaScript zu verwenden, um zu erkennen, dass die Tastatur keinen Dezimalpunkt zeigt? Unter diesen Umständen kann ich dann den Typ number programmatisch auf text ändern, aber ich möchte dies nur für Geräte tun, auf denen es notwendig ist.

(Alternativ ist es eine Möglichkeit, den Dezimalpunkt zu zwingen, auf der Tastatur erscheinen? Meine Forschung bisher hat darauf hingewiesen, dass es nicht, weshalb ich über die Abhilfe bin gefragt statt.)

Ich habe versucht, verschiedene Schritte (any, 0.1, etc) zu verwenden, Muster zu setzen, einen Starter-Wert auf eine Dezimalzahl (value="0.1") ohne Erfolg einzustellen.

Ich habe versucht, Erkennen, dass der Browser Felder Nummer umgehen kann, aber diese Berichte zurück, als ‚wahr‘ ... die Geräte Nummernfelder umgehen, sie behandeln nur sie schlecht:

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 

Ich bin mir nicht sicher, was ich als nächstes versuchen soll ... irgendwelche Ideen von der Gemeinschaft?

+0

Einstellung http://stackoverflow.com/questions/12514162/google-chrome-on-android-and-only sehen -android-does-not-allow-decimal-with-type-num und lies die Kommentare. Ist das das gleiche Problem? – epascarello

+0

Ich bezweifle ernsthaft, dass dies einen Unterschied machen würde, aber Sie müssen '.setAttribute()' nicht für Dinge wie "type" und "step" verwenden; Sie sind Eigenschaften, die direkt auf dem DOM-Knoten zugänglich sind (da Ihr 'alert()' codiert ist), also können Sie einfach 'i.type =" number "schreiben; usw. – Pointy

+0

@epascarello Ich hatte diesen Thread gelesen, aber (a) Hier geht es um Apps (nicht Chrome per se) und (b) dort wurden keine Antworten gepostet. Dieser Thread wurde auch vor mehr als einem Jahr geschrieben, also könnte es seither etwas Neues geben. – caponica

Antwort

0

Versuchen Sie, die min Tag 0.0 statt 0

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

Verwandte Themen