2012-06-18 19 views
8

Jquiery eklentisi Tokeninput kullanıyorum. Ben yinelenen değerler girmesini kullanıcı önlemek gerekir, Js kod aşağıdaki gibidir: Yine aynı öğeyi seçtiğinizdetokeninput jquery eklentisi - preventDuplicates çalışmıyor

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

, Giriş alanında varolan addesiseçildiğinde ve hiçbir şey eklenir.

Ayrıca, farklı bir öğe seçtiğimde, ilk öğe vurgulanır ve hiçbir şey eklenmez.

Herhangi bir fikrin var mı? Bu sorun hala devam yaşıyorsanız

Teşekkür durumda

+0

aynı sorunu seçildiği! – franciscovalera

+0

Aynı sorunu çözdünüz mü? – medBo

cevap

8

, ben ne olup bittiğini biliyor olabilirim. TokenInput, veri nesnesinin "id" özelliğinin tam olarak "id" olarak yazıldığını varsayar (küçük resme dikkat edin). Id özniteliğiniz başka bir şekilde hecelenirse, anlattığınız şey gerçekleşir. Referansınız için bu, add_token işlevinde olur (v1.6.0 tokeninput.js'deki js dosyasındaki 495 satırı).

1

en iyi yol açılır listeyi sınırlamaktır. seçilen öğeleri metin alanına kaldırarak.

"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" 

listeden önceden doldurmak değerleri kaldıracak bu sorgu burada tekrar