【发布时间】:2014-02-26 12:48:55
【问题描述】:
我正在使用 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>
例如,如果有人开始输入“shi”,自动完成会显示如下输出:
shirts 2results
tshirts 3results
我的问题是,当我选择任何自动建议选项时,文本框只显示值而不显示标签。
例如在上面的例子中,如果我选择shirts,文本框会显示2results。 但是在我的第二个 ajax 函数中传递的参数是正确的,即衬衫
谁能提出解决方案?
【问题讨论】:
标签: jquery jquery-ui jquery-ui-autocomplete