Javascript 打字机不工作
我对Typeahead相当陌生,无法使用callback。抱歉,如果已经问过这个问题,我在搜索时找不到确切的问题 如果记录只是来自带有字符串的变量,而不是来自数据库,我让Typeahead工作。我不确定如何正确编写回调代码 我们正在使用MVC6,看起来这是typeahead.js 0.11.1 工作原理:Javascript 打字机不工作,javascript,jquery,model-view-controller,typeahead,Javascript,Jquery,Model View Controller,Typeahead,我对Typeahead相当陌生,无法使用callback。抱歉,如果已经问过这个问题,我在搜索时找不到确切的问题 如果记录只是来自带有字符串的变量,而不是来自数据库,我让Typeahead工作。我不确定如何正确编写回调代码 我们正在使用MVC6,看起来这是typeahead.js 0.11.1 工作原理: var records = [ "Alabama", "Alaska", "Arizona" . . .]; var substringMatcher1 = function (record
var records = [ "Alabama", "Alaska", "Arizona" . . .];
var substringMatcher1 = function (records) {
return function findMatches(searchString, callback) {
var matches, substringRegex;
matches = [];
substrRegex = new RegExp(searchString, 'i');
$.each(records, function (index, record) {
if (substrRegex.test(record)) {
matches.push(record);
}
});
callback(matches);
};
};
$('#field1').typeahead({
hint: true,
highlight: true,
minLength: 3
},
{
name: 'records',
source: substringMatcher1(records)
});
什么不起作用:
var substringMatcher2 = function (records) {
return function findMatches(searchString, callback) {
$.ajax({
url: "/Test/GetRecords/",
cache: false,
data: { searchString: searchString },
type: "POST",
success: function (data) {
callback(data);
},
error: function (reponse) {
alert("error : " + reponse);
}
});
};
};
$('#field2').typeahead({
hint: true,
highlight: true,
minLength: 3
},
{
name: 'records2',
source: substringMatcher2()
});
Test/GetRecords根据searchString正确返回过滤记录(字符串列表),但页面上不显示任何内容。我已调试,数据已正确填充。(数据=[New Jersey,New York,…]当searchString为“New”时)
我错过了什么?这种情况可能发生吗
任何帮助都将不胜感激
提前谢谢 这是更新后的代码,使它适合我,以防对其他人有所帮助:
var substringMatcher2 = function (records) {
return function findMatches(searchString, processSync, processAsync) {
$.ajax({
url: "/Test/GetRecords/",
cache: false,
data: { searchString: searchString },
type: "POST",
success: function (data) {
processAsync(data);
},
error: function (reponse) {
alert("error : " + reponse);
}
});
};
}) 这是更新后的代码,使它适合我,以防对其他人有所帮助:
var substringMatcher2 = function (records) {
return function findMatches(searchString, processSync, processAsync) {
$.ajax({
url: "/Test/GetRecords/",
cache: false,
data: { searchString: searchString },
type: "POST",
success: function (data) {
processAsync(data);
},
error: function (reponse) {
alert("error : " + reponse);
}
});
};
}) 见第271314页。谢谢你的链接。我看了大多数答案,似乎我在做类似的事情,所以我真的不知道为什么它不起作用。您能给我指出一个您认为有帮助的特定答案吗?
callback
需要一个具有value
属性的对象数组,其值为单个搜索结果gues271314。对我有效的是使用异步源参数。我将其更改为“findMatches(searchString、processSync、processAsync)”,并将“回调(数据)”更改为“processAsync(数据)”它成功了!非常感谢!请参阅guest271314。感谢链接。我查看了大多数答案,似乎我正在做类似的事情,所以我不知道为什么它不起作用。您能给我指出一个您认为有用的特定答案吗?回调
需要一个对象数组,该数组具有值
属性和value是一个单独的搜索结果UES271314。对我有效的是使用异步源参数。我将其更改为“findMatches(searchString,processSync,processAsync)”,并将“callback(data)”更改为“processAsync(data)”,并且成功了!非常感谢!