Как использовать getJSON с этим кодом

0

Я просто получил этот прикованный блок выбора, который использует данные 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"}]
  • 0
    вы собираетесь получить JSON из того же домена или другого?
  • 0
    вы получаете какие-либо ошибки в консоли javascript?
Показать ещё 3 комментария
Теги:
getjson

1 ответ

1
Лучший ответ

Проблема заключается в том, что вам удалось вызвать $("#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 "в соответствии с другими

  • 0
    Большое спасибо! Смотрите пример .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню