jQuery GlobalizationとjQuery UI Sliderの両方を使用する ASP.NET MVC 3 アプリを開発しています。
このアプリをブラジルのポルトガル語 (pt-BR) にローカライズしており、英語もサポートしています。
問題は、言語をポルトガル語に変更すると、すべてのモデルfloat
値が 7,7 のようにコンマ ( , ) で区切られることです。次に、Slider の初期値を設定しようとしましたが、7.7 のようなドット ( . ) の値のみを受け入れます。
そのような状況を克服するために、私はこれをやっています:
$.CreateSlider("#sliderHeight", "#Height", @Model.Height.FormatValue(), 0, 2.5, 0.01);
FormatValue は拡張メソッドです。
public static string FormatValue(this float value)
{
return value.Value.ToString().Replace(",", ".");
}
jQuery Slider の値を設定できるように、コンマ区切り記号をドット区切り記号に置き換える必要があることがわかります。
次に、jQuery グローバリゼーションを使用して、次のように UI に正しい値を表示する必要があります。
$(textBox).val($.global.format(ui.value, 'n2'));
それは少なくとも動作します...
私の質問は:
これを行うためのより良い方法または標準的な方法はありますか?
つまり、カルチャを pt-BR に切り替えると、数値が ( , ) で区切られます。これは私の観点では正しいです。制限は、jQuery Slider が値を受け取る方法にあります。
補足するために: から来た方法で値を渡そうとすると、次の@Model
ようなものになり、明らかに壊れます (パラメーター値自体がコンマで区切られているため):
$.CreateSlider("#sliderHeight", "#Height", 7,7 , 0, 2.5, 0.01);