使用选项填充选择框

时间:2014-08-10 14:59:46

标签: jquery ajax getjson

我正在尝试使用选项填充选择框,但它不会填充选择。我从ajax调用中获取了json。我不确定是什么问题。

这是我的尝试:

$.getJSON('checkpictures.cfm?mode=getitem&itemID='+itemname, function(result) {
        var $select = $("#associated_order");
        $select.html('');
        //don't forget error handling!
        $.each(result, function(items) {
        $select.append($("<option />").val(items.orderID).text(items.orderunique));
        }); 
    });

我的JSON对象

[{"itemid":1,"orderid":3,"orderunique":"RXGRFBD9","itemname":"Imperial"},{"itemid":1,"orderid":7,"orderunique":"ARN82Z3M","itemname":"Imperial"}] 

另外,我在这里缺少错误处理,如何添加它。请指导,谢谢

我正在使用selected2插件,所以这里是为此生成的html,它填充了选择框但不填充自定义plgin:

<div class="controls">
    <select data-rel="chosen" data-placeholder="Please choose one" id="associated_order" class="passitem" style="width: 200px; display: block;" name="associated_order"><option value="">29ZDBKZ7</option><option value="">T69AEJZV</option></select><div class="chosen-container chosen-container-single" style="width: 200px;" title="" id="associated_order_chosen"><a tabindex="-1" class="chosen-single chosen-default"><span>Please choose one</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off"></div><ul class="chosen-results"></ul></div></div>
  </div>

更新#1

$.ajax({
            type:'post',
            url:'checkpictures.cfm?mode=forqty',
            data: data, 
            success: function(result) {
                    $("#qtymsg").html(result);
                    if($hostname.indexOf('sell') > -1){
                        $.getJSON('checkpictures.cfm?mode=getitem&itemID='+itemname, function(result) {
                        $select.html('');
                        //don't forget error handling!
                        $.each(result, function(i,items) {
                            $select.append($("<option />").val(items.orderID).text(items.orderunique));
                          });   
                        });
                    }
                }
            });
            $select.trigger("liszt:updated"); 

它还没有填充它

1 个答案:

答案 0 :(得分:2)

$.each的回调有两个参数。第一个是索引或键;第二个是价值。

$.each(result, function(i, items) {
    $select.append($("<option />").val(items.orderID).text(items.orderunique));
});