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.

Другие вопросы по тегам