我已经使用jquery库完成了自动完成功能
使用jquery-ui-1.12.1.min.js
。我已修改它以使用用户名和全名进行搜索。它将显示如下图像
当我选择值时,它会将整个文本粘贴到输入框中。
这是我的问题,如何修改它以显示为图像,但是当我选择值时,它只会将用户名粘贴到输入框中?
当我选择第一个值
时,我只希望nonstop00000将其粘贴到输入框中这是我的javascript
var langFile = "../Scripts/jquery.dataTables.en-US.txt";
var oTable = $('.gvDataTable').dataTable({
"oLanguage": {
"sUrl": langFile
},
"sScrollX": "99%",
"fnDrawCallback": function (oSettings) {/*Re-Create serial no for the table*/
/* Need to redo the counters if filtered or sorted */
if (oSettings.bSorted || oSettings.bFiltered) {
for (var i = 0, iLen = oSettings.aiDisplay.length; i < iLen; i++) {
$('td:eq(0)', oSettings.aoData[oSettings.aiDisplay[i]].nTr).html(i + 1);
}
}
/*Put checkboxlist after filter to show/hide columns after excel export*/
$('.cbShowOrHideGvCols').appendTo('div.DTTT_container');
},
});
这是我的搜索控制器
$(document).ready(function () {
$("#id").autocomplete({
source: function(request,response) {
$.ajax({
url: '@Url.Content("~/UserManagement/AutoCompleteUser")/',
type: "POST",
dataType: "json",
data: { term: request.term },
success: function (data) {
response($.map(data, function (item) {
return [{ label: item.Username + " | " + item.FullName, value: item.id }];
}))
}
})
},
messages: {
noResults: "", results: ""
}
});
})
这是我的自动完成控制器
if (!String.IsNullOrEmpty(searchString))
{
user = user.Where(s => s.Username.Trim().Contains(searchString.Trim())
|| s.FullName.Trim().Contains(searchString.Trim()));
}
这是我的观点
public JsonResult AutoCompleteUser(string term)
{
var result = (from r in db.UserTables
where ((r.Status == "Active") && (r.Username.ToLower().Contains(term.ToLower()) || (r.FullName.ToLower().Contains(term.ToLower()))))
select new { Username = r.Username, FullName = r.FullName }).Distinct();
return Json(result);
}
答案 0 :(得分:2)
要实现此目的,您可以使用select
事件来修改要放入输入的值。试试这个:
$("#id").autocomplete({
// your settings...
select: function(e, ui) {
e.preventDefault();
$('#id').val(ui.item.label.split('|')[0].trim());
}
});