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: "×",
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')))
});