使用jQuery的插件tokenInput我已经设置了我的propertyToSearch:" name"
但我还想搜索另一个字段:
propertyToSearch: "name,email"
或
propertyToSearch: ["name","email"]
这甚至可能吗?
答案 0 :(得分:0)
如果不在jQuery-tokeninput.js中更改插件的核心,就无法做到这一点。 基本上你需要在两个地方拆分propertyToSearch并为每个找到的属性做一些事情。
我做了什么(第924行):
var this_li;
if($(input).data("settings").propertyToSearch.indexOf(',') > -1){
var propertiesToSearch = $(input).data("settings").propertyToSearch.split(',');
}
if(typeof propertiesToSearch != 'undefined' && propertiesToSearch.length > 0){
this_li = $(input).data("settings").resultsFormatter(value);
$.each(propertiesToSearch, function(index, property){
this_li = find_value_and_highlight_term(this_li ,value[property], query);
});
this_li = $(this_li).appendTo(dropdown_ul);
}
else{
this_li = $(input).data("settings").resultsFormatter(value);
this_li = find_value_and_highlight_term(this_li ,value[$(input).data("settings").propertyToSearch], query);
this_li = $(this_li).appendTo(dropdown_ul);
}
围绕第1091行的类似变化:
// Do the search through local data
var results = $.grep($(input).data("settings").local_data, function (row) {
if($(input).data("settings").propertyToSearch.indexOf(',') > -1){
var propertiesToSearch = $(input).data("settings").propertyToSearch.split(',');
}
if(typeof propertiesToSearch != 'undefined' && propertiesToSearch.length > 0){
var status = false;
$.each(propertiesToSearch, function(key, value){
if(row[value].toLowerCase().indexOf(query.toLowerCase()) > -1){
status = true;
}
});
return status;
}
else{
return row[$(input).data("settings").propertyToSearch].toLowerCase().indexOf(query.toLowerCase()) > -1;
}
});