Selection is a custom expandable user interface control that is based on jQuery. It’s helpful for tagging, contact lists, country locators, etc. The clock runs around 7 KB (compressed) The goal is to provide a robust and usable experience with a clean robust API.
custom select dropdown, custom select box css, css style select option dropdown, select> tag in html, custom select option css, input is which tag
Features
- The options search / smart sorting are efficiently recorded and sorted instantly (using a sifter). Want to search the item’s title and description? there is no problem.
- The caret between elements is important sometimes. Use the arrow keys ← and ← to cycle through the selected items.
- Select and delete multiple items at once. Press and hold the Mac option or ctrl in Windows to select more than one item to delete.
- Díåcritîçs support is great for international environments.
- Create Item Allows users to create items instantly (asynchronous save is supported; control locks until the callback is triggered).
- Remote data upload when you have thousands of options and want the server to provide it by type of user.
- Clean up API and code interface with it and make adjustments easily. We welcome withdrawal requests!
- Extensible Plugin API for custom feature development (uses microplugin).
- Touch Support works well with iOS 5+ devices. …
How to make use of it:
1. Include jQuery library and selectize.js within the head part.
<script src="/path/to/jquery.min.js"></script> <script src="/path/to/selectize.js"></script>
2. Include jQuery selectize CSS to model the plugin.
<link rel="stylesheet" href="selectize.css">
3. Create a container for the tags input.
<input type="text" id="input-tags" class="demo-default" value="awesome,neat">
4. Call the operate on the enter subject to initialize the plugin.
$('#input-tags').selectize({ // An array of the initial options available to select; array of objects. // By default this is populated from the original input element. // If your element is a <select> with <option>s specified this property gets populated automatically. // Setting this property is convenient if you have your data as an array and want to automatically generate the <option>s. options: [], // Initial selected values. items: [] // Option groups that options will be bucketed into. // If your element is a <select> with <optgroup>s this property gets populated automatically. // Make sure each object in the array has a property named whatever optgroupValueField is set to. optgroups: [], // Custom delimiter character to separate items delimiter: ',', splitOn: null, // regexp or string for splitting up values from a paste command // If false, items created by the user will not show up as available options once they are unselected. persist: true, // Enable or disable international character support. diacritics: true, // Allows the user to create new items that aren't in the initial list of options. // This setting can be any of the following: true, false (disabled), or a function to process input. // The function can take one of two forms: synchronous (with signature function(input){} or asynchronous (with signature function(input, callback). // In the synchronous case, the function should return an object for the options (eg, with defaults: return { 'value': value, 'text': text };). // The asynchronous version should invoke the callback with the result in the same format as the object above (eg, callback( { 'value': value, 'text': text});) create: false, // If true, when user exits the field (clicks outside of input), a new option is created and selected (if create setting is enabled). createOnBlur: false, // Specifies a RegExp or a string containing a regular expression that the current search filter must match to be allowed to be created. // May also be a predicate function that takes the filter text and returns whether it is allowed. createFilter: null, // Toggles match highlighting within the dropdown menu. highlight: true, // Show the dropdown immediately when the control receives focus. openOnFocus: true, // The max number of items to render at once in the dropdown list of options. maxOptions: 1000, // The max number of items the user can select. Null allows an unlimited number of items maxItems: 1, // If true, the items that are currently selected will not be shown in the dropdown list of available options. hideSelected: false, // If true, the "Add..." option is the default selection in the dropdown. addPrecedence: false, // If true, the tab key will choose the currently selected item. selectOnTab: false, // If true, the load function will be called upon control initialization (with an empty search). Alternatively it can be set to 'focus' to call the load function when control receives focus. preload: false, // Allows empty options. allowEmptyOption: false, // If true, the dropdown will be closed after a selection is made. closeAfterSelect: false, // The animation duration (in milliseconds) of the scroll animation triggered when going [up] and [down] in the options dropdown. scrollDuration: 60, // The number of milliseconds to wait before requesting options from the server or null. // If null, throttling is disabled. Useful when loading options dynamically while the user types a search / filter expression. loadThrottle: 300, // The class name added to the wrapper element while awaiting the fulfillment of load requests. loadingClass: 'loading', // The placeholder of the control (displayed when nothing is selected / typed). // Defaults to input element's placeholder, unless this one is specified. placeholder: undefined, // The <option> attribute from which to read JSON data about the option. dataAttr: 'data-data', // The name of the property to group items by. optgroupField: 'optgroup', // The name of the property to use as the value when an item is selected. valueField: 'value', // The name of the property to render as an option / item label (not needed when custom rendering functions are defined). labelField: 'text', // The name of the property to disabled option and optgroup. disabledField: 'disabled', // The name of the property to render as an option group label (not needed when custom rendering functions are defined). optgroupLabelField: 'label', // The name of the option group property that serves as its unique identifier. optgroupValueField: 'value', // If truthy, Selectize will make all optgroups be in the same order as they were added (by the `$order` property). // Otherwise, it will order based on the score of the results in each. lockOptgroupOrder: false, // A single field or an array of fields to sort by. // Each item in the array should be an object containing at least a field property. // Optionally, direction can be set to 'asc' or 'desc'. // The order of the array defines the sort precedence. sortField: '$order', // An array of property names to analyze when filtering options. searchField: ['text'], // When searching for multiple terms (separated by space), this is the operator used. Can be 'and' or 'or' . searchConjunction: 'and', // multi or single mode: null, // Default classes wrapperClass: 'selectize-control', inputClass: 'selectize-input', dropdownClass: 'selectize-dropdown', dropdownContentClass: 'selectize-dropdown-content', // The element the dropdown menu is appended to. This should be 'body' or null. If null, the dropdown will be appended as a child of the Selectize control. dropdownParent: null, // Copy the original input classes to the dropdown element. copyClassesToDropdown: true, // Custom rendering functions. Each function should accept two arguments: data and escape and return HTML (string or DOM element) with a single root element. // The escape argument is a function that takes a string and escapes all special HTML characters. This is very important to use to prevent XSS vulnerabilities. render: { /* item: null, optgroup: null, optgroup_header: null, option: null, option_create: null */ } });
5. Callback capabilities.
load : null, // function(query, callback) { ... } score : null, // function(search) { ... } onInitialize : null, // function() { ... } onChange : null, // function(value) { ... } onItemAdd : null, // function(value, $item) { ... } onItemRemove : null, // function(value) { ... } onClear : null, // function() { ... } onOptionAdd : null, // function(value, data) { ... } onOptionRemove : null, // function(value) { ... } onOptionClear : null, // function() { ... } onOptionGroupAdd : null, // function(id, data) { ... } onOptionGroupRemove : null, // function(id) { ... } onOptionGroupClear : null, // function() { ... } onDropdownOpen : null, // function($dropdown) { ... } onDropdownClose : null, // function($dropdown) { ... } onType : null, // function(str) { ... } onDelete : null, // function(values) { ... }
6. API strategies.
// initialize the Selectize control var $select = $('#input-tags').selectize(options); // fetch the instance var selectize = $select[0].selectize; // add options, string or array selectize.addOption(data); // update options selectize.updateOption(value, data) // remove an option selectize.removeOption(value); // clear options selectize.clearOptions(silent); // get options selectize.getOption(value) // retrieve the jQuery element for the previous or next option, relative to the currently highlighted option // the direction argument should be 1 for "next" or -1 for "previous" selectize.getAdjacentOption(value, direction); // refresh options selectize.refreshOptions(triggerDropdown); // clear all selected items selectize.clear(silent); // get item selectize.getItem(value); // add an item selectize.addItem(value, silent); // remove an item selectize.removeItem(value, silent); // create a new item selectize.createItem(value, [triggerDropdown], [callback]); // refresh items selectize.refreshItems(); // add a new optgroup selectize.addOptionGroup(id, data); // remove a optgroup selectize.removeOptionGroup(id); // clear all optgroups selectize.clearOptionGroups(); // open the autocomplete dropdown selectize.open(); // close the autocomplete dropdown selectize.close(); // re-position the autocomplete dropdown selectize.positionDropdown(); // destroy the instnace selectize.destroy(); // load options selectize.load(fn) // focus on the control selectize.focus(); // move the focus out of the control selectize.blur(); // lock/unlock the control selectize.lock(); selectize.unlock(); // disable/enable user input selectize.disable(); selectize.enable(); // get the value of the control selectize.getValue(); // set the selected items selectize.setValue(value, silent); // set the selected item selectize.setActiveItem($item, e); // reset the number of max items to the given value selectize.setMaxItems(value); // move the caret to the specified position selectize.setCaret(index); // check if is reaching the limit selectize.isFull(); // clear cache selectize.clearCache(template); // update place holder selectize.updatePlaceholder(); // add an event listener selectize.on(event, handler); // remove an event listener selectize.off(event, handler); // remove all event listeners selectize.off(event); // trigger event listeners selectize.trigger(event, ...);
7. Events.
selectize.on('initialize', function(){ // do something }); selectize.on('focus', function(){ // do something }); selectize.on('blur', function(){ // do something }); selectize.on('clear', function(){ // do something }); selectize.on('option_clear', function(){ // do something }); selectize.on('optgroup_clear', function(){ // do something }); selectize.on('destroy', function(){ // do something }); selectize.on('change', function(value){ // do something }); selectize.on('item_add', function(value, $item){ // do something }); selectize.on('item_remove', function(value, $item){ // do something }); selectize.on('option_add', function(value, data){ // do something }); selectize.on('option_remove', function(value){ // do something }); selectize.on('optgroup_add', function(id, data){ // do something }); selectize.on('optgroup_remove', function(id){ // do something }); selectize.on('dropdown_open', function($dropdown){ // do something }); selectize.on('dropdown_close', function($dropdown){ // do something }); selectize.on('type', function(str){ // do something }); selectize.on('load', function(data){ // do something });
jQuery Plugin For Custom Tags Input and Select Box, selectize.js Plugin/Github
See Demo And Download
Official Website(selectize): Click Here
This superior jQuery/javascript plugin is developed by selectize. For extra Advanced Usages, please go to the official website.