主にモバイルブラウザ用のWebアプリを構築しています。数値型の入力フィールドを使用しているため、(ほとんどの) モバイル ブラウザーはユーザー エクスペリエンスを向上させるために数値キーボードのみを呼び出します。この Web アプリは主に、小数点がドットではなくコンマである地域で使用されるため、両方の小数点を処理する必要があります。
この混乱全体をドットとコンマでカバーする方法は?
私の調査結果:
デスクトップ クローム
- 入力タイプ=数値
- ユーザーは入力フィールドに「4,55」と入力します
$("#my_input").val();
「455」を返します- 入力から正しい値を取得できません
デスクトップ Firefox
- 入力タイプ=数値
- ユーザーは入力フィールドに「4,55」と入力します
$("#my_input").val();
「4,55」を返します- それは結構です。コンマをドットに置き換えて、正しいフロートを取得できます
Android ブラウザ
- 入力タイプ=数値
- ユーザーは入力フィールドに「4,55」と入力します
- 入力がフォーカスを失うと、値は「4」に切り捨てられます
- ユーザーを混乱させる
Windows Phone 8
- 入力タイプ=数値
- ユーザーは入力フィールドに「4,55」と入力します
$("#my_input").val();
「4,55」を返します- それは結構です。コンマをドットに置き換えて、正しいフロートを取得できます
ユーザーがコンマまたはドットを小数点記号として使用する可能性があり、より良いユーザーエクスペリエンスを提供するために、html 入力タイプを数値として保持したい場合、このような状況での「ベストプラクティス」は何ですか?
コンマを「その場で」ドットに変換して、キーイベントをバインドできますか?数値入力で機能しますか?
編集
現在、型が数値に設定されている入力から浮動小数点値 (文字列または数値として) を取得する方法はありません。エンドユーザーが「4,55」と入力すると、Chrome は常に「455」を返し、Firefox は「4,55」を返しますが、これで問題ありません。
また、Android (テスト済みの 4.2 エミュレーター) で、入力フィールドに「4,55」と入力してフォーカスを別の場所に移動すると、入力した数値が「4」に切り捨てられるのも非常に面倒です。