Javascript 如何将getJSON与此代码一起使用
我刚刚得到这个链式选择框,它使用JSON数据填充选项。数据是硬编码的,但是我想使用$.getJSON方法加载数据,但是我无法正确获取代码。我认为suggest.json文件已触发,但似乎是其他原因导致了问题。有人能告诉我如何解决这个问题吗 我从你那里得到了下拉框 原代码:Javascript 如何将getJSON与此代码一起使用,javascript,jquery,html,json,getjson,Javascript,Jquery,Html,Json,Getjson,我刚刚得到这个链式选择框,它使用JSON数据填充选项。数据是硬编码的,但是我想使用$.getJSON方法加载数据,但是我无法正确获取代码。我认为suggest.json文件已触发,但似乎是其他原因导致了问题。有人能告诉我如何解决这个问题吗 我从你那里得到了下拉框 原代码: <script type="text/javascript"> var s = '[{"Box1":"Africa","CODE":1,"ID":"A"},{"Box1":"Asia","CODE":2,"ID"
<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>
问题是您必须调用$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有一个错误:最后一项南美有代码和注释代码,根据其他项目您是从同一个域还是其他域获取json?您在javascript控制台中是否有任何错误?@Evgeniy我从同一个域获取文件。而且似乎触发的很好。请稍等。我设置了两个示例,一个是硬编码数据,一个是使用getJSON方法。@anurupr我设置了两个示例。示例:| | |除了原始硬编码事件中的警告之外,我没有看到任何错误。returnValue已弃用。请改用标准event.preventDefault。除此之外,它工作正常。我测试了您的代码,除了jQueryMySelected之外,所有工作都正常;尝试jquerymyselected.show;我也看到了
[{"Box1":"Africa","CODE":1,"ID":"A"},{"Box1":"Asia","CODE":2,"ID":"B"},{"Box1":"South America","Code":3,"ID":"C"}]
$(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":"|"});
});
});