1

我可以使用http://jqueryui.com/autocomplete/#categories来做基本的标签和类别

但是,我想知道是否可以附加一些带有标签的元数据。例如。现在我有

Product
  TV
  DVD
People
  James
  ROY

我想要类似的东西

Product
  TV - Electronics
  DVD - Electronics
People
  James - USA
  ROY - UK

当用户在选定的项目标签上点击输入时,我只希望输入框中的标签文本,我不希望元数据作为输入文本的一部分。这意味着我不希望电子作为输入文本的一部分。

请帮忙。

4

2 回答 2

0

正如@Unknown 所说,您可以在数据集中返回除自动完成标准 ( label, value)之外的其他属性items

我有 UI,如果用户有一个公认的名称,我提供“创建新”作为选项,以及提供现有实体。这使用了一个额外的 PK/或 Create 属性,该属性在选择时存储到隐藏的输入中。

对于自定义渲染,您可以区分“渲染良好”的值(您显示的)和后端键或值(供内部使用)。取决于您希望如何实现您的 UI,但一个选项是 Javascript 中的“字典”/“关联数组”方法来查找值。

于 2013-09-07T10:18:29.000 回答
0

将元数据添加到标签,将文本添加到要在文本框中显示的 idx 字段,然后处理选择事件以在输入字段中显示 idx 文本,例如:

代码:

 $(function() {
var data = [
    { label: "TV - Electronics",idx:"TV", category: "Products" },
{ label: "DVD - Electronics",idx:"DVD", category: "Products" },
{ label: "James - USA",idx:"James", category: "People" },
{ label: "Roy - UK",idx:"Roy", category: "People" }
];
$( "#search" ).catcomplete({
delay: 0,
source: data,
    select: function(event, ui) { 
    event.preventDefault();
  var selectedObj = ui.item.idx;
  $("#search").val(selectedObj);  
}
});
});

DEMO FIDDLE

于 2013-09-07T09:39:47.077 回答