C# 键入第二个字符且css看起来已损坏后,TypeAhead Autocomplete不起作用
这是我的JS,带有typeahead 0.10.0、bootstrap 3和Asp.net MVC 5C# 键入第二个字符且css看起来已损坏后,TypeAhead Autocomplete不起作用,c#,jquery,asp.net-mvc,typeahead.js,twitter-typeahead,C#,Jquery,Asp.net Mvc,Typeahead.js,Twitter Typeahead,这是我的JS,带有typeahead 0.10.0、bootstrap 3和Asp.net MVC 5 var jobCodes = new Bloodhound({ datumTokenizer: function (d) { return d.JobName; }, queryTokenizer: Bloodhound.tokenizers.whitespace, prefetch: "/api/jobservice/getjobcodes" }); jobCode
var jobCodes = new Bloodhound({
datumTokenizer: function (d) { return d.JobName; },
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: "/api/jobservice/getjobcodes"
});
jobCodes.initialize();
$('#jobquery').typeahead(null, {
name: 'job-codes',
displayKey: 'JobName',
source: jobCodes.ttAdapter()
});
下面是我返回的JSON数据示例:
[{"JobCodeId":101,"JobName":"Agricultural Sciences\r"},{"JobCodeId":102,"JobName":"Animal Sciences\r"},{"JobCodeId":103,"JobName":"Plant & Soil Sciences\r"}]
我遇到的第一个问题是,当我键入第一个字符时,我确实看到了一些建议,但没有像typeahead示例中那样的框css。我是否缺少任何css?
第二个问题是,当我键入第二个字符时,您可以在下面的屏幕截图中看到建议消失。
当我输入第二个字符时,我遇到了同样的问题,但我更新了猎犬datumTokenizer:
datumTokenizer: function (d) { return d.TagName; },
。。。为此:
datumTokenizer: function (d) { return Bloodhound.tokenizers.whitespace(d.TagName); },
我不确定猎犬.tokenizers.whitespace的作用,但它确实帮了我的忙
至于CSS,我基于此使用了它-但我发现它不适用于最新版本的typeahead.js。对于第一个问题,v0.10中生成的typeahead的DOM结构与以前版本中生成的不同。确保你的CSS被相应地更新
对于第二个问题,datumTokenizer
和queryTokenizer
都需要返回一个令牌数组(即字符串)。但是,datumTokenizer
只返回一个字符串。根据您想要的行为,我有两个建议:
如果只希望显示完整字符串匹配的建议,请执行以下操作:
var jobCodes = new Bloodhound({
datumTokenizer: function (d) { return [d.JobName]; },
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: "/api/jobservice/getjobcodes"
});
或者,如果您希望显示单词匹配的建议,请尝试以下操作:
var jobCodes = new Bloodhound({
datumTokenizer: function (d) { return Bloodhound.tokenizers.nonword(d.JobName); },
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: "/api/jobservice/getjobcodes"
})) 我厌倦了返回Bloodhound.tokenizers.whitespace,但仍然不能得到相同的结果。更新:对于引导的css问题,使用哪里可以找到css的示例?在typeahead的github回购协议中,我似乎找不到它。