2012-06-18 64 views
8

我正在使用jquery插件Tokeninput。我需要防止用戶進入重複值,JS代碼如下:tokeninput jquery插件 - preventDuplicates不工作

$(document).ready(function() { 
    // Configure Tags 
    $('#Tags').tokenInput(tagSource(), 
    { 
     prePopulate: selectedTags(), 
     theme: "facebook", 
     propertyToSearch: "Code", 
     preventDuplicates: true 
    }); 

    function tagSource() { 
     var data = []; 
     @if (Model.SourceTags != null && Model.SourceTags.Count() > 0) { 
      <text> 
       data = @(Html.Raw(Model.SourceTags)); 
      </text> 
     } 
     return data; 
    } 

    function selectedTags() { 
     var selectedData = []; 
     @if (Model.SelectedTags != null && Model.SelectedTags.Count() > 0) { 
      <text> 
       selectedData = @(Html.Raw(Model.SelectedTags)); 
      </text> 
     } 
     return selectedData; 
    } 
}); 

當我再次選擇同一項目,在輸入框中現有的項目被高亮顯示,並添加什麼。

另外,當我選擇不同的項目時,第一個項目會突出顯示,並且不會添加任何內容。

有什麼想法?

謝謝

+0

同樣的問題! – franciscovalera

+0

我有同樣的問題你有沒有找到任何解決方案? – medBo

回答

8

如果你仍然有這個問題,我想我可能知道發生了什麼事情。 TokenInput假定數據對象的「id」屬性完全拼寫爲「id」(注意小寫)。如果你的id屬性拼寫有任何不同,你所描述的將會發生。爲了供您參考,這發生在add_token函數中(v1.6.0 tokeninput.js中的js文件中的第495行)。

1

最好的辦法是限制下拉搜索列表。通過刪除文本字段中的選定項目。

"SELECT id, title from job_categories WHERE id NOT IN (".$member->category_id.") AND title LIKE '%%%".$this->input->get('q')."%%' ORDER BY id DESC LIMIT 10" 

此查詢將從列表中刪除的預填充值被選中在這裏再次