【发布时间】:2017-09-04 07:30:08
【问题描述】:
我是 Typeahead 的新手。现在我需要将 typeahead 从静态方式更改为 ajax 方式。 代码是这样的,
var countries2 = [{ labelPost: "AUSTRALIAN NATIONAL UNIVERSITY ACT 200", valuePost: 200 },
{ labelPost: "DARWIN NT 800", valuePost: 800 }, { labelPost: "DARWIN NT 801", valuePost: 801 }, { labelPost: "WAGAIT BEACH NT 803", valuePost: 803 },
{ labelPost: "PARAP NT 804", valuePost: 804 }, { labelPost: "ALAWA NT 810", valuePost: 810 }, { labelPost: "BRINKIN NT 810", valuePost: 810 }, { labelPost: "CASUARINA NT 810", valuePost: 810 }];
$('#txtPostcode').typeahead({
name: 'Postcode',
displayText: function (item) { return item.labelPost; },
items: 10,
source: countries2,
updater: function (item) {
$('#txtPost').val(item.valuePost);
return item.labelPost;
}
});
然后我将数组输出到一个json文件“city.json”并把它放在我可以通过打开localhost/city.json访问的项目文件夹下,然后我尝试了类似的代码。
$('#txtPostcode').typeahead({
name: 'Postcode',
displayText: function (item) { return item.city; },
items: 10,
source: function (query, process) {
var parameter = { query: query };
$.get('city.json', parameter, function (data) {
process(data);
});
它不起作用,并且没有抛出任何错误。
然后我尝试了这种方式。
$('#txtPostcode').typeahead({
name: 'Postcode',
displayText: function (item) { return item.labelPost; },
items: 10,
source: {
ajax: {
url: "/city.json",
}
},
updater: function (item) {
$('#txtPost').val(item.valuePost);
return item.labelPost;
}
});
但结果相同。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
您是否在开发者工具的网络选项卡中签入?这似乎是路径问题。
-
嗨 Manwal,我从开发工具检查了控制台。没有抛出任何错误。网络选项卡似乎没有问题。如果我将路径更改为其他人,当我输入某些内容时,它会立即给出 404 get 错误。我认为这意味着该文件是可访问的。
标签: javascript c# jquery ajax typeahead