Jquery Token Input customized

Jquery Token Input customized and updated preventDuplicates : already selected values not loading duplicate name

by Khadeer Mohammed

HTML

<div class="tokenInputHold">
  <input type="text" class="tokenInput" name="blah2" />
</div>
<br/>
<input type="button" value="Submit" class="getData"/>



<script>
/*
 * jQuery Plugin: Tokenizing Autocomplete Text Entry
 * Version 1.6.0
 *
 * Copyright (c) 2009 James Smith (http://loopj.com)
 * Licensed jointly under the GPL and MIT licenses,
 * choose which one suits your project best!
 *
 */
(function($) {
    // Default settings
    var DEFAULT_SETTINGS = {
        // Search settings
        method: "GET",
        queryParam: "q",
        searchDelay: 300,
        minChars: 1,
        propertyToSearch: "name",
        jsonContainer: null,
        contentType: "json",

        // Prepopulation settings
        prePopulate: null,
        processPrePopulate: false,

        // Display settings
        hintText: "Type in a search term",
        noResultsText: "No results",
        searchingText: "Searching...",
        deleteText: "&times;",
        animateDropdown: true,
        theme: null,
        zindex: 99999,
        resultsLimit: null,

        enableHTML: false,

        resultsFormatter: function(item) {
            var string = item[this.propertyToSearch];
            return "<li>" + (this.enableHTML ? string : _escapeHTML(string)) + "</li>";
        },

        tokenFormatter: function(item) {
            var string = item[this.propertyToSearch];
            return "<li><p>" + (this.enableHTML ? string : _escapeHTML(string)) + "</p></li>";
        },

        // Tokenization settings
        tokenLimit: null,
        tokenDelimiter: ",",
        preventDuplicates: false,
        tokenValue: "id",

        // Behavioral settings
        allowFreeTagging: false,

        // Callbacks
        onResult: null,
        onCachedResult: null,
        onAdd: null,
        onFreeTaggingAdd: null,
        onDelete: null,
        onReady: null,

        // Other settings
        idPrefix: "token-input-",

        // Keep track if the input is currently in disabled...

CSS

/* Example tokeninput style #2: Facebook style */
ul.token-input-list-solix {
    overflow: hidden; 
    height: auto !important; 
    height: 1%;
    width: 400px;
    border: 1px solid #8496ba;
    cursor: text;
    font-size: 12px;
    font-family: Verdana;
    min-height: 1px;
    z-index: 999;
    margin: 0;
    padding: 0;
    background-color: #fff;
    list-style-type: none;
    clear: left;
}

ul.token-input-list-solix li input {
    border: 0;
    width: 100px;
    padding: 3px 8px;
    background-color: white;
    margin: 2px 0;
    -webkit-appearance: caret;
}

li.token-input-token-solix {
    overflow: hidden; 
    height: auto !important; 
    height: 15px;
    margin: 3px;
    padding: 3px;
    background-color: #eff2f7;
    color: #000;
    cursor: default;
    border: 1px solid #ccd5e4;
    font-size: 11px;
    border-radius: 3px;
    float: left;
    white-space: nowrap;
}

li.token-input-token-solix p {
    display: inline;
    padding: 0;
    margin: 0;
}

li.token-input-token-solix span {
    color: #a6b3cf;
    margin-left: 5px;
    font-weight: bold;
    cursor: pointer;
}

li.token-input-selected-token-solix {
    background-color: #5670a6;
    border: 1px solid #3b5998;
    color: #fff;
}

li.token-input-input-token-solix {
    float: left;
    margin: 0;
    padding: 0;
    list-style-type: none;
}

div.token-input-dropdown-solix {
    position: absolute;
    width: 400px;
    background-color: #fff;
    overflow: hidden;
    border: 1px solid #ddd;
    cursor: default;
    font-size: 12px;
    z-index: 99999;
    max-height: 180px;
    overflow-y: auto;
}

div.token-input-dropdown-solix p {
    margin: 0;
    padding: 5px;
    font-weight: bold;
    color: #777;
}

div.token-input-dropdown-solix ul {
    margin: 0;
    padding: 0;
}

div.token-input-dropdown-solix ul li {
    background-color: #fff;
    padding: 3px;
    margin: 0;
    list-style-type: none;
}

div.token-input-dropdown-solix ul li.token-input-dropdown-item-solix {
   ...

JavaScript

$(function(){

	$(".tokenInput").tokenInput(
    [
      {id: 7, name: "Ruby"},
      {id: 11, name: "Python"},
      {id: 13, name: "JavaScript"},
      {id: 17, name: "ActionScript"},
      {id: 19, name: "Scheme"},
      {id: 23, name: "Lisp"},
      {id: 29, name: "C#"},
      {id: 31, name: "Fortran"},
      {id: 37, name: "Visual Basic"},
      {id: 41, name: "C"},
      {id: 47, name: "C++"},
      {id: 48, name: "Java"},
    ], {
      theme: "solix",
      preventDuplicates: true,
      customTags: true
    });

});

$(document).on('click','.getData',function(){
	alert(JSON.stringify($(".tokenInput").tokenInput('get')))
});