Я просто получил этот прикованный блок выбора, который использует данные JSON для заполнения параметров. Скрипт. Данные жестко закодированы, но я хочу загрузить данные с помощью метода $.getJSON()
, но я не могу получить код правильно. Я думаю, что файл suggest.json запускается, но что-то другое вызывает проблему. Кто-нибудь, пожалуйста, покажет мне, как исправить эту проблему?
Я получил The Drop Down Box с этого сайта
Исходный код:
<script type="text/javascript">
var s = '[{"Box1":"Africa","CODE":1,"ID":"A"},{"Box1":"Asia","CODE":2,"ID":"B"},{"Box1":"South America","Code":3,"ID":"C"}]';
var jsonData = $.parseJSON(s);
var $select = $('#mySelectID');
$(jsonData).each(function (index, o) {
var $option = $("<option/>").attr("value", o.CODE).text(o.Box1 + "|" + o.ID);
$select.append($option);
});
jQuery("#mySelectID").dynamicDropdown({"delimiter":"|"});
</script>
Здесь моя неудачная попытка:
<script type="text/javascript">
$.getJSON('suggest.json', function(data){
var $select = $('#mySelectID');
$.each(data, function (index, o) {
var $option = $("<option/>").attr("value", o.CODE).text(o.Box1 + "|" + o.ID);
$select.append($option);
});
});
jQuery("#mySelectID").dynamicDropdown({"delimiter":"|"});
</script>
Suggest.JSON:
[{"Box1":"Africa","CODE":1,"ID":"A"},{"Box1":"Asia","CODE":2,"ID":"B"},{"Box1":"South America","Code":3,"ID":"C"}]
Проблема заключается в том, что вам удалось вызвать $("#mySelectID").dynamicDropdown({"delimiter":"|"});
только когда getJSON вернет вам данные.
Согласно вашему коду, просто замените вызов плагина:
$(document).ready(function(){
$.getJSON('my.json', function(data){
var $select = $('#mySelectID');
$.each(data, function (index, o) {
var $option = $("<option/>").attr("value", o.CODE).text(o.Box1 + "|" + o.ID);
$select.append($option);
});
$("#mySelectID").dynamicDropdown({"delimiter":"|"});
});
});
Кстати, у вас есть ошибка с вашим json: последний пункт (Южная Америка) имеет "Код" и примечание CODE "в соответствии с другими