Автозаполнение с Json, но получение данных не вовремя - PullRequest
0 голосов
/ 31 января 2019

Я делаю автозаполнение с getJson.Но данные не отображаются после ввода только: test

Вы можете увидеть это в действии здесь: http://buildingdomain.com/test/nice.html

Я также делаю обратный вызов.Я получаю данные, но не вовремя.Например, когда я набираю: test, данные не будут отображаться.Только когда я наберу пробел, данные появятся.Но я сразу скажу, что данные появятся после ввода: test.

    <script>
        // Get the input box
        var textInput = document.getElementById('test-input');

        // Init a timeout variable to be used below
        var timeout = null;         
        var data_arr;

        // Listen for keystroke events
        textInput.onkeyup = function (e) 
        {
            clearTimeout(timeout);

            // Make a new timeout set to go off in 800ms
            timeout = setTimeout(function () {
                 TextSuggestions = textInput.value.replace(' ', '_');
                getData(TextSuggestions);
                console.log('Input Value:', textInput.value);
            }, 800);
        };


        function getData(TextSuggestions) 
        {

            var myurl = "";
            TextSuggestions = TextSuggestions.replace(" ", "_"); 
            TextSuggestions = TextSuggestions.replace("%", "_"); 
            myurl = "https://io.qwantumdata.com/search/" + TextSuggestions + "/";
            myurl = myurl.replace(" ", "_")
            console.log(myurl);

            $.getJSON(myurl)
            .done(function (data) {
            getDataCallback(data);
            }).fail(function (jqXHR, textStatus, err) {
                return
            }); 
        }

        function getDataCallback(json)
        {

            data_arr = json.data.items.map(function(i){
                return {
                    label: i.kvkNumber + ' - ' + i.tradeNames.businessName,
                    value: i.kvkNumber + ' - ' + i.tradeNames.businessName,
                    desc: i.tradeNames.businessName
                     }
                })

            auto(data_arr); 
        }           


        function auto(data_arr)
        {       
            $("#test-input").autocomplete(
            {
                source: data_arr,
                minLength: 2
            })      
        }




</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...