Does jQuery autocomplete work with a dynamic array as source

可紊 提交于 2020-08-22 04:56:46

问题


I am currently trying to create an autocomplete with a source that is stored in a javascript variable but this variable can be updated by another function. So, what I would like is that at each time the user updates the autocomplete field, the source field of autocomplete is generated.

Here is the code I use:

<head>
    <script>
        var availableTags = ['java', 'javascript']
        // can be called anytime
        var addToTags = function(str){availableTags.push(str)}

        $(function() {
            $( "#tags" ).autocomplete({
                source: availableTags
            });
        });
    </script>
</head>
<body>
    <div class="ui-widget">
        <label for="tags">Tags: </label>
        <input id="tags" />
    </div>
</body>

Do I need to do a callback-like function?


回答1:


a source that is stored in a javascript variable but this variable can be updated by another function.

That should just work. If both the autocomplete and the updating function reference the same array, you can push new values at any time which will be used as soon as the array is evaluated next time (e.g. on keystroke).

I would like that at each time the user updates the autocomplete field, the source field of autocomplete is generated.

That's a different one. Yes, this needs a callback function to generate the source array dynamically, but that's simple. Have a look at the docs:

$( "#tags" ).autocomplete({
    source: function(request, resolve) {
        // fetch new values with request.term
        resolve(availableTags);
    }
});



回答2:


Just add a reset call to auto-complete in you addToTags function:

var addToTags = function(str){
   availableTags.push(str);
   $( "#tags" ).autocomplete({
       source: availableTags
   });
}



回答3:


this is very straight forward

$( "#tags" ).autocomplete('option', 'source', availableTags)

setting availableTags array wherever needed



来源:https://stackoverflow.com/questions/13856429/does-jquery-autocomplete-work-with-a-dynamic-array-as-source

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!