簡體   English   中英

jQuery的自動完成不拿起數組

[英]jquery autocomplete not picking up array

我正在建立一個網站。 在網站上,我有一個搜索表單,該表單應使用自動完成功能在數據庫中查找數據。 后端部分已准備就緒,但前端部分我無法使其正常工作。 我發現了這篇文章: 是否可以更改JQuery的JQueryUI自動完成功能生成的Url? 但看起來搜索欄未使用該響應。

我的網頁只在本地運行,因此無法顯示,但是我有代碼(留下了doctype等一些部分,請注意以方便閱讀):

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

</head>
<body>
<div class="ui-widget">
    <label for="country-by-name">Country: </label>
    <input id="country-by-name">
</div>
<script type="text/javascript">
$("#country-by-name").autocomplete({
    source: function(req, resp){
                $.get('/data/country/by-name/'+ encodeURIComponent(req.term), function(json){
                    var numCountries = json['countries'].length;
                    if(numCountries > 0){
                        var countryNames = [];
                        for(var i = 0; i < numCountries; i++){
                            countryNames.push(json['countries'][i]['name']);
                        }
                        resp = countryNames;
                        console.log(resp);
                    }else{
                        resp = [];
                    }
                    return resp;
                });
            },
    minLength: 2
});
</script>

后端工作正常,例如,如果我轉到:/ data / country / by-name / zi,那么它將重新調整json:

{"countries": [{"id": 812, "name": "Brazil"}, {"id": 995, "name": "Swaziland"}, {"id": 1033, "name": "Zimbabwe"}]}

這也是由javascript拾取的,因為如果我console.log()它顯示出來:

(3) ["Brazil", "Swaziland", "Zimbabwe"]

因此,數據在那里,但沒有被jquery的自動完成功能提取。 有誰知道為什么“ resp”不用於自動完成?

解決了問題。 我沒有意識到“ resp”是一個回調函數。 所以我應該用過resp(countryNames)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM