【发布时间】:2017-11-22 17:23:00
【问题描述】:
这是我输入的 html 和 js 代码:
HTML
<input id="student" name="student" required data-rule-validStudent="true" type="text" value="" class="form-control" />
TypeAhead 代码:
部分脚本 {
@Scripts.Render("~/bundles/jqueryval")
<script>
$(document).ready(function() {
var vm = {
bookIds: []
};
var students = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('firstName'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/api/students?query=%QUERY',
wildcard: '%QUERY'
}
});
$('#student').typeahead({
minLength: 2, //typeahead will query the server when user types atleast 3 letters
highlight: true, // the letters in the search result that match our query will be bold
},
{
name: 'students',
display: function (item) { return item.firstName + ' ' + item.middleName + ' ' + item.lastName + ' ' + '('+item.id+ ')' },
source: students.ttAdapter()
}).on("typeahead:select",
function(e, student) {
vm.studentId = student.id;
});
}
});
</script>
}
基本上,我有一个输入字段,应该显示名字、中间名和姓氏。 Typeahead 仅对名字进行自动完成。它确实获取了正确的记录以及为什么输入名字,它确实给了我全名的建议。但是,当我继续输入中间名时,自动完成功能不起作用。我的代码中是否缺少某些内容?
【问题讨论】:
-
提供您的整个预输入对象
-
请看一下更新后的代码。
-
将 datumTokenizer: Bloodhound.tokenizers.obj.whitespace('firstName') 替换为 datumTokenizer: Bloodhound.tokenizers.obj.whitespace,看看发生了什么
-
我试过了..但问题仍然存在。
标签: jquery autocomplete typeahead.js bloodhound