Javascript 输入未显示结果
我想使用typeahead远程检索邮政编码,它必须是post,而不是get。该调用在控制台中返回以下json:Javascript 输入未显示结果,javascript,typeahead.js,Javascript,Typeahead.js,我想使用typeahead远程检索邮政编码,它必须是post,而不是get。该调用在控制台中返回以下json: {suggestions: "L-6956 | IM GRUND | KEEN-SUR-DOHEEM"} {suggestions: "L-6956 | OP DER MOUCK | KEEN-SUR-DOHEEM"} 但是,为了选择一个结果,结果不会显示在输入字段下。这是我的密码: $('#txtPostalCode').typeahead( null, { nam
{suggestions: "L-6956 | IM GRUND | KEEN-SUR-DOHEEM"}
{suggestions: "L-6956 | OP DER MOUCK | KEEN-SUR-DOHEEM"}
但是,为了选择一个结果,结果不会显示在输入字段下。这是我的密码:
$('#txtPostalCode').typeahead(
null,
{
name: 'txtPostalCode',
displayKey: 'suggestions',
minLength: 3,
source: function (query, syncResults) {
$.post('/hotbed/sggl/getpipedaddresses', {searchItem: query}, function (data) {
syncResults($.map(data, function (item) {
console.log(item.suggestions);
return item;
}));
}, 'json');
}
});
根据typeahead API,服务器响应应标记为异步,并且应使用该异步CB获取响应
$('#txtPostalCode').typeahead({
null
},
{
name: 'txtPostalCode',
displayKey: 'suggestions',
minLength: 3,
async: true,
source: function (query, processSync, processAsync) {
processSync(['This suggestion appears immediately', 'This one too']);
return $.ajax({
url: "/hotbed/sggl/getpipedaddresses",
type: 'POST',
data: {searchItem: query},
dataType: 'json',
success: function (json) {
// in this example, json is simply an array of strings
return processAsync(json);
}
});
}
});
由于这个问题没有公开的悬赏,我不能将其标记为重复,但您可能会在下面的问题中找到更多细节
这很有帮助,但我想补充一点,当您在源函数中使用3个参数时,async:true并不是一种改进。你不需要归还任何东西。介意我编辑吗?我已经编辑了你的答案,但评论者并不欣赏…在它被拒绝之前接受它:(谢谢,现在它像预期的那样工作。但是为了完整性:哪里可以找到typeahead api?Ajax正在为我输入的每一个字符发帖,如何在请求之前插入延迟?下一个问题:一旦选择了选项,我必须调用另一个路由。在哪里执行此操作?你可以使用debouce之类的工具,或者只在2-3个字符后开始检查。)