2017-06-07 16 views
0

私は構築している単純なWebアプリケーションで非常に不満な問題があります。Safariはコンマで小数点を表示します

ChromeやFireFoxでは問題なく動作しますが、ipad(Safariはライブで使用されます)でSafariでアプリケーションを使用すると、データのフォーマットが正しく行われません。

たとえば、取得されたデータでは、小数点のセパレータとしてポイント(.)が使用され、firefox/chromeにはそのように表示されます。

ただし、サファリでデータを表示しているときはカンマ(,)で表示され、データベースの挿入がうんざりしています。

地域と言語をイギリスに変更しようとしましたが、効果はありませんでした。

これは私が問題になっている小数点以下のいずれかを表示する方法を示します。

@Html.LabelFor(model => model.MassOff, new { @class = "viewFieldLabel" }) <br /> 
@Html.DisplayFor(model => model.MassOff) 

しかし、私はまた、自動的にクラスのプロパティに基づいて自分自身を移入され、他の場所WebGridで小数を表示するようには、このことをさらに悪くなります、私は明示的に小数点を表示するように言ったことはありません。しかし、それはまだWebGridのカンマで表示されますので、私はそれをどのように変更するつもりはないと思っていません...

サファリは自動的にこれを自動的に行いますが、 ?これらの値を手動で試してみる必要がありますか?JQueryを使って変更するか(まったくばかばかしいと思われます)、私のコードに含める必要があるipadやプロパティで変更できる設定がありますか?

更新

私は、小数点以下が問題の性質上

[DisplayFormat(DataFormatString = "{0:0.###}")] 

で表示される方法を修正するために管理。ただし、データを送信する際には、まだコンマ(,)で送信されているため、表示方法が変わるようです。

答えて

1

あなたのSafariや他のブラウザでは、異なるnavigator.languageがあるようです。

このトピックでご覧ください。 Best way to determine user's locale within browser

をあなたは は単純にAccept-Languageヘッダを読み取り、 JavaScriptの通りに戻ってそれを吐くネット上のどこか他のサーバー側のスクリプトを置くことができる場合例えば、文字列のヘッダー値を使用してファイル:

var acceptLanguage= 'en-gb,en;q=0.7,de;q=0.3; 

、あなたはHTMLでその外部サービスでポインティングを含み、そしてlanguagを解析する JavaScriptを使用することができますeヘッダー。私はAccept-Language解析が であるため、これを行うには既存の ライブラリコードがほとんど知られていません。

+0

あなたの答えはありがたいですが、私はその意味がわかりません。 2台目のサーバーをセットアップし、そこからサービスを実行する必要がありますか?これは完全にばかげているようです。 Safari自体でこの 'navigator.language'を変更することはできませんか? – Bassie

関連する問題