2011-06-05 174 views
1

我正在使用谷歌存儲庫中的jQuery ui。我在下面的格式獲取數據:jQuery ui自動完成

[{name:"test", param1:"test"},{name:"test2", param1:"test2"}...] 

但jQuery的自動完成名爲「標籤」 所以我怎麼可能改變「標籤」到「名」,因爲我要過濾的領域正在尋找名稱字段所在的信息包含鍵入的值。

回答

2

閱讀您的帖子上的幾行內容,我發現您無法編輯向頁面提供數據的部分,因此您必須操縱您擁有的內容。 ,但它會更容易,只是改變提供什麼,以滿足你需要

我相信要得到這個工作,你將不得不返回源回調中的選項,使用請求對象,併爲每個孩子創建一個與你想要的相匹配的項目。所以像這樣:

$(selector).autocomplete({ 
    source: function(request, response) { 
    response(function(data){ 
     for(key in data){ 
     data[key].label = data[key].name; 
     } 
     return data; 
    }); 
    } 
}); 

但我不是100%確定這個代碼。

交替你可以在這裏覆蓋「過濾器」功能:

$.extend($.ui.autocomplete, { 
escapeRegex: function(value) { 
    return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); 
}, 
filter: function(array, term) { 
    var matcher = new RegExp($.ui.autocomplete.escapeRegex(term), "i"); 
    return $.grep(array, function(value) { 
     return matcher.test(value.label || value.value || value); 
    }); 
} 
}); 

去改變使用你在說什麼了。但我會稱這種糟糕的設計/實現。