我得到一个这样的JSON数组:
[{"type":"user","id":"12","name":"Name of User"},{"type":"group","id":"9","name":"Name of UserGroup"}]
后端返回一个 JSON 数组,其中包含名称、ID 和类型(用户或组)。
有没有办法在输入输入字段之前操作 id,例如
type+"_"+id
?
实际上,我正在使用它来初始化令牌输入:
$("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: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 (...))"是 nessecary,因为 tokenInput 会占用条目,如果你搜索相同的字符串,id 已经有 type+"_" 前缀,并且会得到一个 secound/three/...时间。
试试这个:
resultsFormatter: function(item) {
var itemId = item.type + "_" + item.id;
return "<li id='" + itemId + "'><img src="+((item.type=="user") ? "contact" : "contact_group")+ ".png"/>"+item.name+"</li>";
}