我在文本字段的视图中使用jQuery Auto Complete Plugin。单一选择非常有效。
我正在合并多个选择,但出于某种原因,如果我选择多个值,则会覆盖先前的选择。
我正在关注jQuery Plugin Tutorials上的示例。
$("#ServiceEntryFilter_System").autocomplete({
source: function (request, response) {
$.ajax({
url: serviceentrySystemURL, type: "POST", dataType: "json",
minLength: 0,
data: { searchText: extractLast(request.term), maxResult: 100, instrumenttype: userroleid },
success: function (data) {
response($.map(data, function (item) {
return { value: item }
}))
}
})
},
focus: function () {
// prevent value inserted on focus
return false;
},
select: function (event, ui) {
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();
}
[HttpPost]
public JsonResult FindSystem(string searchText, int maxResult, string instrumenttype)
{
int UserRoleID = AccessHelper.GetUserRoleID(User.Identity.Name);
var result = RunLog.Domain.Lists.GlobalList.GetInstrumentSystem(searchText, maxResult, instrumenttype);
return Json(result);
}
答案 0 :(得分:0)
我不是100%确定这是否是你想要的,但是选择事件不是你想要的。在运行该函数后,它似乎会覆盖该值。
我尝试了这个,它似乎为数组添加了值:(我只是将其更改为焦点)
focus: function(event, ui){
var terms = this.value.split(", ");
// 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;
}