【发布时间】:2020-11-14 20:59:57
【问题描述】:
在https://www.npmjs.com/package/bootstrap-4-autocomplete 上使用一个自动完成插件,并且以下工作:
$('#id').autocomplete({
source: {'test1':1, 'test2':2, 'test1':3}
});
需要创建一个 XMLHttpRequest 而不是本地 JSON,并且正在考虑类似以下内容,虽然我没有收到错误,但我也没有得到任何东西:
$('#id').autocomplete({
source: function() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
return JSON.parse(this.responseText);
}
};
xhttp.open(method, url, true);
xhttp.send();
}
});
该插件的作者不久前做了以下remark:
我没有计划直接调用库中的任何 url。你什么 可以做的是在您的 ajax 调用后将自动完成设置为您的文本字段 返回,你可以用 jQuery 来做,像这样:
$.ajax('myurl').then((data) => $('#myTextfield').autocomplete({ 来源:数据}));
您不必担心将自动完成设置为多个字段 有时,当您需要更改 来源。
尝试过,正如预期的那样,$.ajax() 在页面加载时发起了一个 XMLHttpRequest 请求,而不是当用户在搜索输入中输入字符时所期望的。
如何创建 XMLHttpRequest 以将数据导入插件?我假设我应该使用 Promise,但是,如果没有,仍然会感谢任何帮助。
谢谢
【问题讨论】:
标签: javascript jquery promise xmlhttprequest