引导自动完成不加载地图(Bootstrap autocomplete doesn't loa

2019-10-20 13:04发布

我有一个图是一个JSON的结果。 我需要指定它自动完成。 但是好像我必须做一个肮脏的工作。 有没有清洁的方式做到这一点?

http://jsfiddle.net/7dLRh/

这是非常脏的部分代码:

$( "#autocomplete1" ).autocomplete({

        source: function(request, response) {
            var re = $.ui.autocomplete.escapeRegex(request.term);                                   
            var matcher = new RegExp( "n*" + re + "n*", "i");   
            var arrayKey = $.map(v1.data, function (itemKey, itemValue) {
                return itemKey
            }); 
            var arrayValue = $.map(v1.data, function (itemKey, itemValue) {
                return itemValue
            }); 
            var key = $.grep( arrayKey, function(item,index){                                       
                return matcher.test(item);
            }); 
            var value = $.grep( arrayValue, function(item,index){                                       
                return matcher.test(item);
            }); 

            var s = "{ ";
            for (var i =0; i< key.length; i++) {
                if (i < value.length) {
                    s+= "\"" + value[i] + "\":\"" + key[i] + "\",";
                }                                       
            }       
            s = s.substring(0, s.length-1);
            s += "}";

            var jsonObject = jQuery.parseJSON(s);               

            response($.map(jsonObject, function (itemKey, itemValue) {
                return {
                    label: itemKey,
                    value: itemValue
                };
            }));
        }



    });

Answer 1:

只是这样做:

    var i = 0;
    var repCodesMap = v1.data;
    var repCodesSource = new Array();
    $.each(repCodesMap, function(key, value) {
        repCodesSource[i++] = { label : value, value : key };
    });

    $( "#autocomplete1" ).autocomplete({
        source : repCodesSource
    });

在这里更新您的代码: http://jsfiddle.net/7dLRh/2/



文章来源: Bootstrap autocomplete doesn't load the map