2012-06-18 9 views
8

Ich benutze jquery plugin Tokeninput. Ich brauche Benutzer zu verhindern das Eindringen von doppelten Werten, der Js-Code wird wie folgt dar:tokeninput jquery plugin - preventDuplicates funktioniert nicht

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

Wenn ich den gleichen Artikel erneut auswählen, das vorhandene Element im Eingabefeld wird markiert und es wird nichts hinzugefügt.

Wenn ich ein anderes Element auswähle, wird das erste Objekt hervorgehoben und nichts hinzugefügt.

Irgendeine Idee?

Dank

+0

Die gleiche Problem hier

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

diese Abfrage wird die vorab ausgefüllten Werte aus der Liste entfernen! – franciscovalera

+0

Ich habe das gleiche Problem haben Sie irgendeine Lösung gefunden? – medBo

Antwort

8

Falls Sie dieses Problem noch haben, werden, ich denke, ich könnte wissen, was los ist. TokenInput geht davon aus, dass das "id" -Attribut Ihres Datenobjekts genau wie "id" geschrieben wird (beachten Sie den Kleinbuchstaben). Wenn Ihr ID-Attribut anders geschrieben wird, geschieht das, was Sie beschrieben haben. Zu Ihrer Information geschieht dies in der Funktion add_token (Zeile 495 in der js-Datei in v1.6.0 tokeninput.js).

1

Der beste Weg besteht darin, die Dropdown-Liste zu begrenzen. indem Sie die ausgewählten Elemente im Textfeld entfernen. so gewählt ist wieder

Verwandte Themen