2014-02-17 43 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