Dies liegt an dem Verhalten, das mit dem HTML5- number
Eingabetyp in Chromium verbunden ist, und Sie sind definitiv nicht der einzige , der sich nicht darum kümmert.
Ich habe dieses Problem in der Vergangenheit mithilfe des text
Typs umgangen. Dies hat beispielsweise gut funktioniert (wurde gerade in Chrome 11.0.696.71 getestet):
<input type="text"
placeholder="Enter Text"
name="inputName"
pattern="[0-9]*">
Dieses Verhalten des number
Typs (zumindest für mich) ist definitiv ein Fehler, da der HTML5-Standard angibt, number
dass der Wert bei der Formatierung für die Anzeige den folgenden Wert haben soll:
Der Algorithmus zum Konvertieren einer Zahl in eine Zeichenfolge bei einer eingegebenen Zahl lautet wie folgt: Gibt eine gültige Gleitkommazahl zurück, die die Eingabe darstellt.
Und der Standard definiert eine „gültige Gleitkomma“ Nummer hier , und soweit ich sehen kann, einschließlich Gruppierungszeichens ist nicht zu erwarten.
Aktualisieren
Ich habe das Problem auf den folgenden Code in den Eingeweiden von WebKit beschränkt. Ich habe auch hier die Zeile eingefügt, die das Problem behebt:
String formatLocalizedNumber(double number, unsigned fractionDigits)
{
NumberFormat* formatter = numberFormatter();
if (!formatter)
return String();
UnicodeString result;
formatter->setMaximumFractionDigits(clampToInteger(fractionDigits));
formatter->setGroupingUsed(FALSE);
formatter->format(number, result);
return String(result.getBuffer(), result.length());
}
Ich bin nächste Woche im Urlaub, habe aber vor, diesen Patch nach meiner Rückkehr beim WebKit-Team einzureichen. Sobald sie (hoffentlich) den Patch akzeptiert haben, sollte Chromium ihn als Teil seines normalen Aktualisierungsprozesses einspielen.
Sie können den Originalcode hier , die gepatchte Revision hier und den Unterschied zwischen der Originaldatei und der gepatchten Datei hier sehen . Der letzte Patch wurde von Shinya Kawanaka erstellt.