我刚刚得到了这个链式选择框的工作,它使用 JSON 数据来填充选项。小提琴。数据是硬编码的,但我想使用 $.getJSON()
方法加载数据,但我无法正确获取代码。我认为 suggest.json 文件已触发,但似乎还有其他原因导致了问题。有人可以告诉我如何解决问题吗?
我从这个网站得到了下拉框
原始代码:
<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>
建议.JSON:
[{"Box1":"Africa","CODE":1,"ID":"A"},{"Box1":"Asia","CODE":2,"ID":"B"},{"Box1":"South America","Code":3,"ID":"C"}]
问题是只有当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"