2014-02-17 84 views
0

我剛剛得到這個鏈接選擇框工作,使用JSON數據填充選項。 Fiddle。數據是硬編碼的,但我想使用$.getJSON()方法加載數據,但我無法獲得正確的代碼。我認爲這個prompt.json文件被觸發了,但是其他的東西似乎導致了這個問題。請有人告訴我如何解決這個問題?如何使用getJSON與此代碼

我下拉框中的投遞從this site

原始代碼:

<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嗎? – Evgeniy

+0

你是否在javascript控制檯中得到任何錯誤? – anurupr

+0

@Evgeniy我從同一個域中獲得文件,並且它似乎被觸發罰款。請稍等,我設置了兩個示例,一個使用硬編碼,一個使用getJSON方法。 – RedGiant

回答

1

問題是,只有當getJSON返回數據時,你才需要調用$("#mySelectID").dynamicDropdown({"delimiter":"|"});

根據你的代碼,只是交換插件調用:

$(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

非常感謝!看[示例](http://painfulmouth.com/indexjq3.php)。 – RedGiant