2016-03-15 15:39:22 +01:00
<!DOCTYPE html>
< html lang = "en" >
< head >
2016-09-15 22:04:15 +02:00
< meta charset = "UTF-8" >
< meta name = "viewport" content = "width=device-width,initial-scale=1,user-scalable=no" >
< title > Choices< / title >
< meta name = description itemprop = description content = "A lightweight, configurable select box/text input plugin. Similar to Select2 and Selectize but without the jQuery dependency." >
< link rel = "apple-touch-icon" sizes = "180x180" href = "assets/images/apple-touch-icon.png" >
< link rel = "icon" type = "image/png" href = "assets/images/favicon-32x32.png" sizes = "32x32" >
< link rel = "icon" type = "image/png" href = "assets/images/favicon-16x16.png" sizes = "16x16" >
< link rel = "manifest" href = "assets/images/manifest.json" >
< link rel = "mask-icon" href = "assets/images/safari-pinned-tab.svg" color = "#00bcd4" >
< link rel = "shortcut icon" href = "assets/images/favicon.ico" >
< meta name = "msapplication-config" content = "/assets/images/browserconfig.xml" >
< meta name = "theme-color" content = "#ffffff" >
<!-- Ignore these -->
2016-09-20 15:18:20 +02:00
< link rel = "stylesheet" href = "assets/styles/css/base.min.css?version=2.0.5" >
2016-09-15 22:04:15 +02:00
<!-- End ignore these -->
<!-- Optional includes -->
< script src = "https://cdn.polyfill.io/v2/polyfill.js?features=es5,fetch,Element.prototype.classList,requestAnimationFrame,Node.insertBefore,Node.firstChild" > < / script >
<!-- End optional includes -->
<!-- Choices includes -->
2016-09-20 15:18:20 +02:00
< link rel = "stylesheet" href = "assets/styles/css/choices.min.css?version=2.0.5" >
< script src = "assets/scripts/dist/choices.min.js?version=2.0.5" > < / script >
2016-09-15 22:04:15 +02:00
<!-- End Choices includes -->
<!-- [if lt IE 9]>
< style >
.hidden-ie { display: none; }
.visible-ie { display: block; }
< / style >
<![endif]-->
2016-03-15 15:39:22 +01:00
< / head >
< body >
2016-09-15 22:04:15 +02:00
< div class = "container" >
< div class = "section" >
< img src = "assets/images/logo.svg" alt = "Choices.js logo" class = "logo hidden-ie" >
< h1 class = "visible-ie" > Choices.js< / h1 >
< p > Choices.js is a lightweight, configurable select box/text input plugin. Similar to Select2 and Selectize but without the jQuery dependency.< / p >
< p > For all config options, visit the < a href = "https://github.com/jshjohnson/Choices" > GitHub repo< / a > .< / p >
< hr >
< h2 > Text inputs< / h2 >
< label for = "choices-text-remove-button" > Limited to 5 values with remove button< / label >
< input class = "form-control" id = "choices-text-remove-button" type = "text" value = "preset-1,preset-2" placeholder = "Enter something" >
< label for = "choices-text-unique-values" > Unique values only, no pasting< / label >
< input class = "form-control" id = "choices-text-unique-values" type = "text" value = "preset-1, preset-2" placeholder = "This is a placeholder" class = "custom class" >
< label for = "choices-text-email-filter" > Email addresses only< / label >
< input class = "form-control" id = "choices-text-email-filter" type = "text" placeholder = "This is a placeholder" >
< label for = "choices-text-disabled" > Disabled< / label >
< input class = "form-control" id = "choices-text-disabled" type = "text" value = "josh@joshuajohnson.co.uk, joe@bloggs.co.uk" placeholder = "This is a placeholder" >
< label for = "choices-text-prepend-append-value" > Prepends and appends a value to each items return value< / label >
< input class = "form-control" id = "choices-text-prepend-append-value" type = "text" value = "preset-1, preset-2" placeholder = "This is a placeholder" >
< label for = "choices-text-preset-values" > Preset values passed through options< / label >
< input class = "form-control" id = "choices-text-preset-values" type = "text" value = "olivia@benson.com" placeholder = "This is a placeholder" >
< label for = "choices-text-preset-values" > Right-to-left< / label >
< input class = "form-control" data-choice id = "choices-text-rtl" type = "text" value = "Value 1, Value 2" dir = "rtl" >
< hr >
< h2 > Multiple select input< / h2 >
< label for = "choices-multiple-default" > Default< / label >
< select class = "form-control" data-choice name = "choices-multiple-default" id = "choices-multiple-default" placeholder = "This is a placeholder" multiple >
< option value = "Dropdown item 1" selected > Dropdown item 1< / option >
< option value = "Dropdown item 2" > Dropdown item 2< / option >
< option value = "Dropdown item 3" > Dropdown item 3< / option >
< option value = "Dropdown item 4" disabled > Dropdown item 4< / option >
< / select >
< label for = "choices-multiple-groups" > Option groups< / label >
< select class = "form-control" data-choice name = "choices-multiple-groups" id = "choices-multiple-groups" placeholder = "This is a placeholder" multiple >
< optgroup label = "UK" >
< option value = "London" > London< / option >
< option value = "Manchester" > Manchester< / option >
< option value = "Liverpool" > Liverpool< / option >
< / optgroup >
< optgroup label = "FR" >
< option value = "Paris" > Paris< / option >
< option value = "Lyon" > Lyon< / option >
< option value = "Marseille" > Marseille< / option >
< / optgroup >
< optgroup label = "DE" disabled >
< option value = "Hamburg" > Hamburg< / option >
< option value = "Munich" > Munich< / option >
< option value = "Berlin" > Berlin< / option >
< / optgroup >
< optgroup label = "US" >
< option value = "New York" > New York< / option >
< option value = "Washington" disabled > Washington< / option >
< option value = "Michigan" > Michigan< / option >
< / optgroup >
< optgroup label = "SP" >
< option value = "Madrid" > Madrid< / option >
< option value = "Barcelona" > Barcelona< / option >
< option value = "Malaga" > Malaga< / option >
< / optgroup >
< optgroup label = "CA" >
< option value = "Montreal" > Montreal< / option >
< option value = "Toronto" > Toronto< / option >
< option value = "Vancouver" > Vancouver< / option >
< / optgroup >
< / select >
< label for = "choices-multiple-remote-fetch" > Options from remote source (Fetch API) & limited to 5< / label >
< select class = "form-control" name = "choices-multiple-remote-fetch" id = "choices-multiple-remote-fetch" multiple > < / select >
< label for = "choices-multiple-rtl" > Right-to-left< / label >
< select class = "form-control" data-choice name = "choices-multiple-rtl" id = "choices-multiple-rtl" placeholder = "This is a placeholder" multiple dir = "rtl" >
< option value = "Dropdown item 1" selected > Dropdown item 1< / option >
< option value = "Dropdown item 2" > Dropdown item 2< / option >
< option value = "Dropdown item 3" > Dropdown item 3< / option >
< option value = "Dropdown item 4" disabled > Dropdown item 4< / option >
< / select >
< hr >
< h2 > Single select input< / h2 >
< label for = "choices-single-default" > Default< / label >
< select class = "form-control" data-choice name = "choices-single-default" id = "choices-single-default" placeholder = "This is a placeholder" >
< option value = "Dropdown item 1" > Dropdown item 1< / option >
< option value = "Dropdown item 2" > Dropdown item 2< / option >
< option value = "Dropdown item 3" > Dropdown item 3< / option >
< / select >
< label for = "choices-single-remote-fetch" > Options from remote source (Fetch API)< / label >
< select class = "form-control" name = "choices-single-remote-fetch" id = "choices-single-remote-fetch" placeholder = "Pick an Arctic Monkeys record" > < / select >
< label for = "choices-single-remove-xhr" > Options from remote source (XHR) & remove button< / label >
< select class = "form-control" name = "choices-single-remove-xhr" id = "choices-single-remove-xhr" placeholder = "Pick a Smiths record" > < / select >
< label for = "choices-single-groups" > Option groups< / label >
< select class = "form-control" data-choice name = "choices-single-groups" id = "choices-single-groups" placeholder = "This is a placeholder" >
< optgroup label = "UK" >
< option value = "London" > London< / option >
< option value = "Manchester" > Manchester< / option >
< option value = "Liverpool" > Liverpool< / option >
< / optgroup >
< optgroup label = "FR" >
< option value = "Paris" > Paris< / option >
< option value = "Lyon" > Lyon< / option >
< option value = "Marseille" > Marseille< / option >
< / optgroup >
< optgroup label = "DE" disabled >
< option value = "Hamburg" > Hamburg< / option >
< option value = "Munich" > Munich< / option >
< option value = "Berlin" > Berlin< / option >
< / optgroup >
< optgroup label = "US" >
< option value = "New York" > New York< / option >
< option value = "Washington" disabled > Washington< / option >
< option value = "Michigan" > Michigan< / option >
< / optgroup >
< optgroup label = "SP" >
< option value = "Madrid" > Madrid< / option >
< option value = "Barcelona" > Barcelona< / option >
< option value = "Malaga" > Malaga< / option >
< / optgroup >
< optgroup label = "CA" >
< option value = "Montreal" > Montreal< / option >
< option value = "Toronto" > Toronto< / option >
< option value = "Vancouver" > Vancouver< / option >
< / optgroup >
< / select >
< label for = "choices-single-rtl" > Right-to-left< / label >
< select class = "form-control" data-choice name = "choices-single-rtl" id = "choices-single-rtl" placeholder = "This is a placeholder" dir = "rtl" >
< option value = "Dropdown item 1" > Dropdown item 1< / option >
< option value = "Dropdown item 2" > Dropdown item 2< / option >
< option value = "Dropdown item 3" > Dropdown item 3< / option >
< / select >
< label for = "choices-single-no-search" > Options added via config with no search< / label >
< select class = "form-control" name = "choices-single-no-search" id = "choices-single-no-search" >
< option value = "0" > Zero< / option >
< / select >
< label for = "choices-single-preset-options" > Option and option groups added via config< / label >
< select class = "form-control" name = "choices-single-preset-options" id = "choices-single-preset-options" placeholder = "This is a placeholder" > < / select >
< label for = "choices-single-selected-option" > Option selected via config< / label >
< select class = "form-control" name = "choices-single-selected-option" id = "choices-single-selected-option" placeholder = "This is a placeholder" > < / select >
< label for = "choices-single-no-sorting" > Options without sorting< / label >
< select class = "form-control" name = "choices-single-no-sorting" id = "choices-single-no-sorting" placeholder = "This is a placeholder" >
< option value = "Madrid" > Madrid< / option >
< option value = "Toronto" > Toronto< / option >
< option value = "Vancouver" > Vancouver< / option >
< option value = "London" > London< / option >
< option value = "Manchester" > Manchester< / option >
< option value = "Liverpool" > Liverpool< / option >
< option value = "Paris" > Paris< / option >
< option value = "Malaga" > Malaga< / option >
< option value = "Washington" disabled > Washington< / option >
< option value = "Lyon" > Lyon< / option >
< option value = "Marseille" > Marseille< / option >
< option value = "Hamburg" > Hamburg< / option >
< option value = "Munich" > Munich< / option >
< option value = "Barcelona" > Barcelona< / option >
< option value = "Berlin" > Berlin< / option >
< option value = "Montreal" > Montreal< / option >
< option value = "New York" > New York< / option >
< option value = "Michigan" > Michigan< / option >
< / select >
< p > Below is an example of how you could have two select inputs depend on eachother. 'Boroughs' will only be enabled if the value of 'States' is 'New York'< / p >
< label for = "states" > States< / label >
< select class = "form-control" name = "states" id = "states" placeholder = "Choose a state" >
< option value = "Michigan" > Michigan< / option >
< option value = "Texas" > Texas< / option >
< option value = "Chicago" > Chicago< / option >
< option value = "New York" > New York< / option >
< option value = "Washington" > Washington< / option >
< / select >
< label for = "boroughs" > Boroughs< / label >
< select class = "form-control" name = "boroughs" id = "boroughs" placeholder = "Choose a borough" >
< option value = "The Bronx" > The Bronx< / option >
< option value = "Brooklyn" > Brooklyn< / option >
< option value = "Manhattan" > Manhattan< / option >
< option value = "Queens" > Queens< / option >
< option value = "Staten Island" > Staten Island< / option >
< / select >
2016-04-04 15:43:22 +02:00
< / div >
2016-09-15 22:04:15 +02:00
< / div >
< script >
document.addEventListener('DOMContentLoaded', function() {
var example1 = new Choices(document.getElementById('choices-text-remove-button'), {
delimiter: ',',
editItems: true,
maxItemCount: 5,
removeItemButton: true,
callbackOnHighlightItem: function(id, value, passedInput) {
console.log(value);
},
callbackOnUnhighlightItem: function(id, value, passedInput) {
console.log(value);
},
});
var example2 = new Choices('#choices-text-unique-values', {
paste: false,
duplicateItems: false,
editItems: true,
});
var example3 = new Choices('#choices-text-email-filter', {
editItems: true,
regexFilter: /^(([^< >()\[\]\\.,;:\s@"]+(\.[^< >()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
});
var example4 = new Choices('#choices-text-disabled', {
addItems: false,
removeItems: false,
}).disable();
var example5 = new Choices('#choices-text-prepend-append-value', {
prependValue: 'item-',
appendValue: '-' + Date.now(),
}).removeActiveItems();
var example7 = new Choices('#choices-text-preset-values', {
items: ['josh@joshuajohnson.co.uk', { value: 'joe@bloggs.co.uk', label: 'Joe Bloggs' } ],
});
var example9 = new Choices('#choices-multiple-remote-fetch', {
placeholder: true,
placeholderValue: 'Pick an Strokes record',
maxItemCount: 5,
callbackOnChange: function(value, passedInput) { console.log(value) }
}).ajax(function(callback) {
fetch('https://api.discogs.com/artists/55980/releases?token=QBRmstCkwXEvCjTclCpumbtNwvVkEzGAdELXyRyW')
.then(function(response) {
response.json().then(function(data) {
callback(data.releases, 'title', 'title');
2016-07-30 16:50:29 +02:00
});
2016-09-15 22:04:15 +02:00
})
.catch(function(error) {
console.log(error);
});
});
var example10 = new Choices('#choices-single-remote-fetch', {
placeholder: true,
placeholderValue: 'Pick an Arctic Monkeys record'
}).ajax(function(callback) {
fetch('https://api.discogs.com/artists/391170/releases?token=QBRmstCkwXEvCjTclCpumbtNwvVkEzGAdELXyRyW')
.then(function(response) {
response.json().then(function(data) {
callback(data.releases, 'title', 'title');
example10.setValueByChoice('Fake Tales Of San Francisco');
2016-07-30 16:50:29 +02:00
});
2016-09-15 22:04:15 +02:00
})
.catch(function(error) {
console.log(error);
});
});
var example11 = new Choices('#choices-single-remove-xhr', {
removeItemButton: true,
}).ajax(function(callback) {
var request = new XMLHttpRequest();
request.open('get', 'https://api.discogs.com/artists/83080/releases?token=QBRmstCkwXEvCjTclCpumbtNwvVkEzGAdELXyRyW', true);
request.onreadystatechange = function() {
var status;
var data;
if (request.readyState === 4) {
status = request.status;
if (status === 200) {
data = JSON.parse(request.responseText);
callback(data.releases, 'title', 'title');
example11.setValueByChoice('How Soon Is Now?');
2016-08-04 20:55:55 +02:00
} else {
2016-09-15 22:04:15 +02:00
console.error(status);
2016-08-04 20:55:55 +02:00
}
}
2016-09-15 22:04:15 +02:00
}
request.send();
});
2016-08-04 20:55:55 +02:00
2016-09-15 22:04:15 +02:00
var example12 = new Choices('[data-choice]', {
placeholderValue: 'This is a placeholder set in the config',
removeButton: true,
2016-04-25 19:00:30 +02:00
});
2016-09-15 22:04:15 +02:00
var example13 = new Choices('#choices-single-no-search', {
search: false,
removeItemButton: true,
choices: [
{value: 'One', label: 'Label One'},
{value: 'Two', label: 'Label Two', disabled: true},
{value: 'Three', label: 'Label Three'},
],
}).setChoices([
{value: 'Four', label: 'Label Four', disabled: true},
{value: 'Five', label: 'Label Five'},
{value: 'Six', label: 'Label Six', selected: true},
], 'value', 'label');
var example14 = new Choices('#choices-single-preset-options', {
placeholder: true,
}).setChoices([{
label: 'Group one',
id: 1,
disabled: false,
choices: [
{value: 'Child One', label: 'Child One', selected: true},
{value: 'Child Two', label: 'Child Two', disabled: true},
{value: 'Child Three', label: 'Child Three'},
]
},
{
label: 'Group two',
id: 2,
disabled: false,
choices: [
{value: 'Child Four', label: 'Child Four', disabled: true},
{value: 'Child Five', label: 'Child Five'},
{value: 'Child Six', label: 'Child Six'},
]
}], 'value', 'label');
var example15 = new Choices('#choices-single-selected-option', {
choices: [
{value: 'One', label: 'Label One', selected: true},
{value: 'Two', label: 'Label Two', disabled: true},
{value: 'Three', label: 'Label Three'},
],
}).setValueByChoice('Two');
var example16 = new Choices('#choices-single-no-sorting', {
shouldSort: false,
});
var states = new Choices(document.getElementById('states'), {
callbackOnChange: function(value) {
if(value === 'New York') {
boroughs.enable();
} else {
boroughs.disable();
}
}
});
var boroughs = new Choices(document.getElementById('boroughs')).disable();
});
< / script >
<!-- Google Analytics - Ignore me -->
< script >
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-31575166-1', 'auto');
ga('send', 'pageview');
< / script >
< script async src = 'https://www.google-analytics.com/analytics.js' > < / script >
<!-- End Google Analytics -->
2016-03-15 15:39:22 +01:00
< / body >
< / html >