如何在select2插件中加载JSON数据

时间:2017-03-24 21:37:17

标签: javascript jquery select2 jvectormap

我试图从JVectormap的jvectormap-element中获取数据属性的最后两个字母(data-code =" US-VA"在本例中为VA)并使用它来与从数据库中状态对象并在select2插件中加载相应的县。我无法在select2的AJAX中设置数据。到目前为止,我已经尝试了以下代码。提前谢谢。

HTML

<input type="hidden" class="tag">

JS:

$(".jvectormap-element").on("click", function(){
            data1 = $(this).data("code"); 
            $state = data1.slice(3, 5);
            $(".tag").select2({
                tags: true,
                multiple: true,
                cache: true,
                allowClear: true,
                ajax: {
                    type: "get",
                    url: http_host + '/leads/regions/counties?state=' + $state,
                    data: {state: $state},
                    dataType: "json",
                    processResults: function(data) {
                        optionsValues='';
                        for ( var i=0;i<data.length;i++ ) {
                            optionsValues += '<option>' + data[i].CountyName + '</option>';
                        }
                    }
                }

            });    console.log($(".tag").select2('data'));
        });
    });

来自网址的JSON数据:

[{"CountyName":"Accomack"},{"CountyName":"Albemarle"},{"CountyName":"Alexandria City"},.....]

2 个答案:

答案 0 :(得分:0)

.slice如果是数组,而不是字符串。

只需将$state = data1.slice(3, 5);更改为$state = data1.substr(3, 4);

即可

这是从零开始的......所以第一个字母是0 使用.substr(),第一个参数是从哪里开始,第二个是停止包含它的位置。

答案 1 :(得分:0)

替换你的$ state = data1.slice(3,5);与此相符

$strings = data1.split('-');
$state = $strings[1];