1
난 내 MVC 프로젝트에 여러 값을 자동으로 완성하려고하지만 첫 번째 값과 두 번째 아무것도 발생
내보기 코드 자동 완성 :
MVC JQuery와 자동 완성 여러 값 만
@Html.TextBox("SentUsers", "", new { @class = "text-box"})
@Html.Hidden("UsersId")
자바 스크립트 번호 :
<script type="text/javascript">
var customData = null;
var userId;
$(function() {
$("#SentUsers")
.bind("keydown", function (event) {
if (event.keyCode === $.ui.keyCode.TAB &&
$(this).data("ui-autocomplete").menu.active) {
event.preventDefault();
}
})
.autocomplete({
minLength: 2,
source: function (request, response) {
$.ajax({
url: "/Ajax/AutoCompleteUsers",
type: "POST",
dataType: "json",
data: { term: request.term },
success: function (data) {
alert(data);
customData = $.map(data, function (item) {
userId = item.UserId;
return { label: item.Name + "(" + item.Email + ")", value: item.Name }
});
response(customData, extractLast(request.term))
}
})
},
focus: function() {
// prevent value inserted on focus
return false;
},
select: function (event, ui) {
var usersIdVal = $("#UsersId").val();
usersIdVal += ", " + userId;
$("#UsersId").val(usersIdVal)
var terms = split(this.value);
// remove the current input
terms.pop();
// add the selected item
terms.push(ui.item.value);
// add placeholder to get the comma-and-space at the end
terms.push("");
this.value = terms.join(", ");
return false;
}
});
});
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
컨트롤러 번호 :,
public JsonResult AutoCompleteUsers(string term)
{
var result = (from r in db.UserItems
where r.Name.ToLower().Contains(term.ToLower())
select new { r.Name, r.Email, r.UserId }).Distinct();
return Json(result, JsonRequestBehavior.AllowGet);
}
내가 정적 자바 스크립트 배열 자동 완성 여러 값 완벽한 작업을 시도!
난 오류가이 블록에있을 수 있습니다 생각하지만, 나는 해결책을 내 질문을 해결하기 위해 노력 온몸을
customData = $.map(data, function (item) {
userId = item.UserId;
return { label: item.Name + "(" + item.Email + ")", value: item.Name }
});