Jquery Globalize формат числа и Google Chrome
Эта скрипка возвращает правильное значение "5,5" в IE и FF, но в Chrome возвращает "5,5"
Скрипка: http://jsfiddle.net/4tvSH/
Globalize.culture("sv-SE");
alert(Globalize.format(5.5));
Есть ли ошибка в плагине Globalize?
редактировать:
Это странно, в Web.Config (MVC3) у меня есть это
<globalization enableClientBasedCulture="true" />
Это означает, что клиент устанавливает культуру, и chrome, и FF сообщают sv-SE, поэтому загруженная культура Globalize - это sv-SE, как в скрипте выше.
Но если я отлаживаю код выше в строке 767 в Chrome
return culture.name.length ? value.toLocaleString() : value.toString();
value.toLocaleString () вернет формат en-US
Это работает, но это взломать..
//Fixes a bug in Globalize/Chrome where Globalize.format returns en-US format even with sv-SE
if($.browser.webkit == true) {
Globalize.orgFormat = Globalize.format;
Globalize.format = function(value, format) {
if(format == null) {
format = "N";
}
return this.orgFormat(value, format);
};
}
1 ответ
Похоже, что Chrome действительно обрабатывает value.toLocaleString() не так, как Firefox, однако я считаю, что это следует рассматривать как ошибку Globalize.
Я исправил это поведение в своем форке Globalize, который был так же прост, как и удаление этого toLocaleString iirc.