This is an old revision of the document!
Во фронтенде некоторых сайтов используются нестандартные стилизованные выпадающие списки, как правило с ними возникает проблема, когда содержимое таких выпадающих списком обновляется динамически. Часто этими выпадающими списками становятся элементы ввода для выбора страны, области, города и района в корзине. Если к этим спискам применяется какая-то библиотека для их стилизации, то стандартные методы по обновлению этих элементов из файла main.js перестают работать, вернее они работают как и прежде, но нестандартные выпадающие списки отказываются отображать корректные данные.
Здесь может пригодиться следующее решение. Необходимо переопределить метод $.clientSelectOptionsCallback
, который объявляется в файле main.js, для этого ниже подключения этого файла необходимо подключить JS-файл со следующим содержимым:
$.extend({ clientSelectOptionsCallback: function(data, status, jqXHR) { $.loadingScreen('hide'); jQuery(this).empty(); for (var key in data) { jQuery(this).append(jQuery('<option>').attr('value', key.substr(1)).text(data[key])); } /** * Обновляем списки городов * * @author Maxim Zasorin, KAD Systems (©) 2017 * @date 10-01-2017 * Начало >> */ jQuery(this) .selectbox('detach') .selectbox('attach'); /** * << Конец * @author Maxim Zasorin, KAD Systems (©) 2017 * @date 10-01-2017 */ }, });
При этом внутри авторских комментариев необходимо записать верное действие для обновления списков, выше приведен пример для обновления списков с использованием библиотеки Selectbox 0.2, очень старой и давно неподдерживаемой, но отчего-то встречавшейся в 2 разных проектах.
Страницу создал Максим Засорин 10.01.17 в 15:49