【问题标题】:remote datasource in jquery autocompletejquery自动完成中的远程数据源
【发布时间】:2015-07-04 09:07:01
【问题描述】:

我必须在 jquery 自动完成列表中显示搜索到的文本。我有在列表中添加搜索文本的功能,但我必须使用远程数据源来完成。我有一个返回 array 的 URL。

使用静态数组列表fiddle工作演示

我必须为远程数据源添加相同的功能。如何添加搜索文本作为响应。

$(document).ready(function() {

   var tagsElem = $("#tags");

   tagsElem.autocomplete({
        source : "search.php",
        search : function( event, ui ){
            if(check(response,tagsElem.val()))
              response[response.length]=tagsElem.val()              
            tagsElem.autocomplete( "option", "source", response);
        },
        open: function( event, ui ) {
            if(check(response,tagsElem.val())){
            tagsElem.next().find('li:last a').append(' <span style="color:red;">new</span>');
            }
                   }
    });

    function check(arrayTag,value){
     for(i=0;i<len;i++){
        if( arrayTag[i]==value)
                return false
        }
        return true
    }

});

【问题讨论】:

    标签: jquery autocomplete


    【解决方案1】:

    我可以看到你正在使用 Jquery UI。

    我假设你知道 how to change to remote source 并返回一个简单的数组答案。

    当 Jquery UI 工作时,它会将您的简单 json 数组更改为:

    [{label:<array_value1>,value:<array_value1>},{label:<array_value2>,value:<array_value2>}]
    

    要完成你想要的,你必须在响应事件中做:

                response: function(index,obj){
                    var v = tagsElem.val();
                    var add = {};
                    add['label'] = v;
                    add['value'] = v;
                    obj.content[obj.content.length] = add;
                }
    

    'obj.content'就是上面的json数组。

    这会将搜索键添加到响应数组中。

    请注意,上面示例中的 'tagsElem' 指的是 JSFiddle 中的 tagsElem。

    这是我开始工作的示例,不是在小提琴中,而是在本地主机上: JSFiddle

    【讨论】:

      猜你喜欢
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多