Это случается и со мной тоже. Со следующей клиентской стороной JS:
var data=incoming_json_assoc_array_of_counties_sorted_alphabetically_by_county //eg 47=>"west midlands"
for (key in data) {
options.push('<option value="' + key + '">' + data[key]+ '</option>');
}
$('#county_id').val(options.join(''));
Похоже, что chrome не будет поддерживать целые числа в качестве имен свойств или будет сортировать по ключу, а не по значению. Независимо от значения, в которое поступают данные
Это боль в задней части, так как большинство моих массивов - это num => массивы данных.
Пожалуйста, посетите http://code.google.com/p/chromium/issues/detail?id=12169 для объяснения, все еще ищите обходной путь / исправление.
Это не делается в FF или даже в сафари, основанном на webkit.
Пробовал на ПК и MAC хром и получаю ту же проблему.
Другой вариант, который, я полагаю, состоит в том, чтобы визуализировать HTML на стороне сервера и просто использовать JS для помещения данных в теги .., а не генерировать их на стороне клиента.
[обновление]
см. Google Chrome: ассоциативные массивы JavaScript, оцененные не по порядку , для хорошего сплошного ответа
[редактировать 2013]
По-видимому, это все еще не было исправлено Это допустимое поведение в соответствии со стандартами ECMAScript, но это не то, как можно «ожидать» его поведения. Хотели ли вы использовать selected.js , который может помочь вам решить вокруг проблемы.