2016-04-12 47 views

回答

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; 
        }       
       });