【发布时间】:2012-05-29 12:27:55
【问题描述】:
我得到一个这样的 JSON 数组:
[{"type":"user","id":"12","name":"Name of User"},{"type":"group","id":"9","name":"Name of UserGroup"}]
后端返回一个带有名称、ID 和类型(用户或组)的 JSON 数组。
有没有办法在输入到输入字段之前操作id,例如
type+"_"+id
?
其实我就是用这个来初始化tokenInput:
$("input#id").tokenInput(apiURL+"search.php", {
defaultValue:"User or User Group",
hintText:"Fill in User or User Group name.",
noResultsText:"nothing found.",
searchingText:"Searching...",
queryParam:"search",
crossDomain:false,
tokenLimit:5,
preventDuplicates:true,
minChars:3,
resultsFormatter:function(item) {
return "<li><img src="+((item.type=="user") ? "contact" : "contact_group")+ ".png\"/>"+item.name+"</li>";
}
});
在 Rory McCrossan 的帮助下,我成功了。把 id 改成 resultsFormatter 方法就行了:
resultsFormatter:function(item) {
if (item.id.indexOf("_") == -1)
{
item.id = item.type+"_"+item.id;
}
return "<li><img src="+((item.type=="user") ? "contact" : "contact_group")+ ".png\"/>"+item.name+"</li>";
}
“if (item.id.indexOf (...))” 是必要的,因为 tokenInput 会匹配条目,如果您搜索相同的字符串,则 id 已经具有 type+“_” 前缀并且会第二次/第三次/...时间。
【问题讨论】: