jQuery Tokeninput 将 ID 和 secound 值的组合保存为内部 ID



我得到一个这样的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>";
}

最新更新