【发布时间】:2020-05-15 06:11:32
【问题描述】:
我正在尝试在文本输入字段 (documentation here) 上使用 jQuery-Autocomplete 库。 因此我使用这个 Ajax 查找从数据库中获取数据:
// terminal.js
$(document).ready(function() {
$.ajax("getStocksAvailable/", {
method: "GET",
async: "True",
dataType: "json",
success: function (response) {
console.log(response);
var myDataInAutocompleteFormat = $.map(response, function (response) {
return {value: response.fields.description, data: response.pk};
});
$("#autocomplete").autocomplete({
source: myDataInAutocompleteFormat,
lookup: myDataInAutocompleteFormat,
onSelect: function (suggestion) {
alert("You selected: " + suggestion.value + ", " + suggestion.data);
}
});
}
});
})
以这种格式返回response json:
[0 … 99]
0:
fields: {description: "DP WORLD"}
description: "DP WORLD"
model: "feeder.stocksavailablemodel"
pk: 17969
__proto__: Object
1: {model: "feeder.stocksavailablemodel", pk: 17970, fields: {…}}
2: {model: "feeder.stocksavailablemodel", pk: 17971, fields: {…}}
我想让 jQuery 使用 json 中的所有 description 值自动完成输入字段。
// html
<link rel="stylesheet" type="text/css"
href="https://cdnjs.cloudflare.com/ajax/libs/jquery-autocomplete/1.0.7/jquery.auto-complete.min.css">
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-autocomplete/1.0.7/jquery.auto-complete.min.js"></script>
<script src="{% static 'js/terminal.js' %}"></script>
错误
Uncaught TypeError: $(...).autocomplete is not a function
at Object.success (terminal.js:30)
at c (VM1560 jquery.min.js:2)
at Object.fireWith [as resolveWith] (VM1560 jquery.min.js:2)
at l (VM1560 jquery.min.js:2)
at XMLHttpRequest.<anonymous> (VM1560 jquery.min.js:2)
我假设自动完成器不喜欢 json 的格式。但我不知道如何使它符合它的要求,以便它能够处理数据。
Json 作为屏幕截图返回:
【问题讨论】:
标签: javascript jquery jquery-ui-autocomplete