<script type="text/javascript">
$(function () {
$('#input-tagautocomplete').tagsinput({
typeahead: {
source: function (term, process) {
items = [];
map = {};
var url = "@Url.Content("~/video/Getchannel/")";
return $.getJSON(url, { term: term }, function (data) {
$.each(data, function (i, item) {
map[item.Ch_Name] = item;
items.push(item.Ch_Name);
});
return (items);
});
},
updater: function (item) {
var selected = map[item].Id;
alert(selected);
$('#tag-value').val(selected);
return item;
}
}
});
});
我有这个包含ajax请求的脚本来获取数组源。
然后在自动完成中传递这些值。
我想尝试这样的事情 -
http://jsfiddle.net/Palapas/WtC27/1/
注意 - 当JSON类型的请求被发送到方法时,它返回给我一个数组结果,因为它应该是自动完成的。
public JsonResult Getchannel(string term)
{
var genes = (from u in tp.Channels
where u.Ch_Name.Contains(term)
select u).ToArray();
var result = genes.Select(m => new { Ch_Name = m.Ch_Name, Id = m.Id });
return new JsonResult()
{
Data = result,
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
此方法返回Ch_Name
和Id
的数组。
然后我只在输入的显示字段中选择名称,并在选择时保存其ID。
但我不能完成这项自动完成工作。
我在这里缺少什么?我想我的一切都很好。
以下是来自方法
的数据快照
答案 0 :(得分:-1)
没有&#39;更新程序&#39; typeahead参数的属性。
但是,您可以使用$('#input-tagautocomplete').val()
来获取包含逗号分隔的标记列表的字符串。请参阅this page以获取参考。