我正在创建一个使用jquery自动完成的搜索栏。jquery自动完成不显示文本框中的选定值
这里是我的自动完成代码:
<script type="text/javascript">
$(document).ready(function() {
$(function() {
$(".txtSearch").autocomplete(
{
source: function (request, response) {
$.ajax({
url: '@Url.Action("AutoComplete", "components")',
type: "GET",
data: request,
success: function (data) {
response($.map(data, function (el) {
return {
label: el.autoSuggest,
value: el.resultCount
};
}));
}
});
},
minLength: 3,
select: function (event, ui) {
$(this).val(ui.item.label);
var values = ui.item.label;
$.ajax({
type: 'GET',
contentType: 'application/json',
cache: false,
url: '@Url.Action("SearchFunc", "components")',
dataType: 'json',
data: { searchTerm: values }
}).done(function (result) {
window.location.href = "search.aspx?pass=" + encodeURIComponent(result);
})
}
}).data("ui-autocomplete")._renderItem = function (ul, item) {
return $("<li></li>")
.data("ui-autocomplete-item", item)
.append("<a><table width='100%'><tr><td><strong>" + item.label + "</strong></td><td align='right' style='font-size: 10px;'>" + item.value + "</td></tr></table></a>")
.appendTo(ul);
};
});
});
</script>
例如,如果有人开始输入“市”,自动完成显示输出是这样的:
shirts 2results
tshirts 3results
我的问题是,当我选择任何汽车 - 推荐选项,文本框只显示值,而不显示标签。
例如在上述情况下,如果我选择衬衫,文本框显示2件结果。 但我的第二个Ajax函数传递的参数是正确的,即衬衫
任何人都可以提出解决方案吗?
你的代码工作。但是,当我使用箭头键,它仍然显示值.... – nitinvertigo
箭头键触发焦点事件,所以你也需要取消。 –
是的,我已经做到了......发布了答案..感谢您的帮助 – nitinvertigo