我正在使用 Bootstrap Typeahead 和 Ajax 构建一个特定的“自动完成”。
我的代码类似于:
searchInput.typeahead({
source: function (request, response) {
$.ajax({
url: '/Home/AllNamesAutoComplete',
type: 'post',
dataType: 'json',
data: { searchText: searchInput.val() },
success: function (data) {
var arr = [];
$.each(data.AutoCompleteItemViewModel, function () {
arr.push(this.Name + " - <span>" + this.Position + "</span>");
});
return response(arr);
}
})
},
items: 6
});
在推送中,我传递了两个不同的值:this.Name
和this.Position
.
一切正常,但如果我输入“ S
”作为第一个字母,它<span>
也会呈现。我想将我的字符串作为 HTML 推送,但我仍然不知道该怎么做。
另一件事是,当用户单击自动完成中的项目时,我希望只选择Name
and 而不是Name
and Position
。
我想将 HTML 放入 Typeahead 源的数组中,然后我想在单击时仅在主输入中呈现特定值,而不是两者都呈现。
我看了一下“ Extend the bootstrap-typeahead in order to take an object而不是 string ”,但我无法理解它,因为它使用的是 Backbone。