2016-03-15 15:39:22 +01:00
<!DOCTYPE html>
< html lang = "en" >
2017-07-19 19:48:46 +02:00
2016-03-15 15:39:22 +01:00
< 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." >
2018-05-25 15:00:27 +02:00
< 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" >
2016-09-15 22:04:15 +02:00
< meta name = "theme-color" content = "#ffffff" >
<!-- Ignore these -->
2019-10-15 10:47:00 +02:00
< link rel = "stylesheet" href = "assets/styles/base.min.css?version=7.0.1" >
2016-09-15 22:04:15 +02:00
<!-- End ignore these -->
<!-- Optional includes -->
2019-03-29 10:12:29 +01:00
< script src = "https://polyfill.io/v3/polyfill.min.js?features=es5%2Ces6%2CArray.prototype.includes%2Cfetch%2CCustomEvent" > < / script >
2016-09-15 22:04:15 +02:00
<!-- End optional includes -->
<!-- Choices includes -->
2019-10-15 10:47:00 +02:00
< link rel = "stylesheet" href = "assets/styles/choices.min.css?version=7.0.1" >
< script src = "assets/scripts/choices.min.js?version=7.0.1" > < / script >
2016-09-15 22:04:15 +02:00
<!-- End Choices includes -->
<!-- [if lt IE 9]>
2016-09-21 14:32:21 +02:00
< style >
.hidden-ie { display: none; }
.visible-ie { display: block; }
< / style >
<![endif]-->
2016-03-15 15:39:22 +01:00
< / head >
2017-07-19 19:48:46 +02:00
2016-03-15 15:39:22 +01:00
< body >
2016-09-15 22:04:15 +02:00
< div class = "container" >
< div class = "section" >
2016-09-29 14:55:31 +02:00
< a href = "https://github.com/jshjohnson/Choices" class = "logo" >
2018-05-25 15:00:27 +02:00
< img src = "assets/images/logo.svg" alt = "Choices.js logo" class = "logo__img hidden-ie" >
2016-09-29 14:55:31 +02:00
< h1 class = "visible-ie" > Choices.js< / h1 >
< / a >
2017-07-19 19:48:46 +02:00
< p > Choices.js is a lightweight, configurable select box/text input plugin. Similar to Select2 and Selectize but without
the jQuery dependency.< / p >
2016-09-15 22:04:15 +02:00
< p > For all config options, visit the < a href = "https://github.com/jshjohnson/Choices" > GitHub repo< / a > .< / p >
2017-07-24 16:23:30 +02:00
< hr >
< p class = "h4 text-center" >
< strong > Interested in writing your own ES6 JavaScript plugins? Check out < a href = "https://ES6.io/friend/JOHNSON" > ES6.io< / a > for great tutorials! 💪🏼< / strong >
< / p >
2016-09-15 22:04:15 +02:00
< hr >
2017-08-03 12:22:21 +02:00
< h2 > Text inputs< / h2 >
2016-09-15 22:04:15 +02:00
< 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 >
2017-07-19 19:48:46 +02:00
< input class = "form-control" id = "choices-text-unique-values" type = "text" value = "preset-1, preset-2" placeholder = "This is a placeholder"
class="custom class">
2016-09-15 22:04:15 +02:00
< 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 >
2017-06-29 09:40:56 +02:00
< input class = "form-control" id = "choices-text-preset-values" type = "text" value = "Michael Smith" placeholder = "This is a placeholder" >
2016-09-15 22:04:15 +02:00
2016-11-07 11:27:04 +01:00
< label for = "choices-text-i18n" > I18N labels< / label >
2018-05-29 16:46:30 +02:00
< input class = "form-control" id = "choices-text-i18n" type = "text" >
2016-11-07 11:27:04 +01:00
< label for = "choices-text-rtl" > Right-to-left< / label >
2018-05-29 20:55:33 +02:00
< input data-trigger class = "form-control" id = "choices-text-rtl" type = "text" value = "Value 1, Value 2" dir = "rtl" >
2016-09-15 22:04:15 +02:00
< hr >
< h2 > Multiple select input< / h2 >
< label for = "choices-multiple-default" > Default< / label >
2017-07-19 19:48:46 +02:00
< select class = "form-control" data-trigger name = "choices-multiple-default" id = "choices-multiple-default" placeholder = "This is a placeholder"
multiple>
2018-10-27 22:00:49 +02:00
< option value = "Choice 1" selected > Choice 1< / option >
< option value = "Choice 2" > Choice 2< / option >
< option value = "Choice 3" > Choice 3< / option >
< option value = "Choice 4" disabled > Choice 4< / option >
2016-09-15 22:04:15 +02:00
< / select >
2016-10-12 14:54:14 +02:00
< label for = "choices-multiple-remove-button" > With remove button< / label >
2017-07-19 19:48:46 +02:00
< select class = "form-control" name = "choices-multiple-remove-button" id = "choices-multiple-remove-button" placeholder = "This is a placeholder"
multiple>
2018-10-27 22:00:49 +02:00
< option value = "Choice 1" selected > Choice 1< / option >
< option value = "Choice 2" > Choice 2< / option >
< option value = "Choice 3" > Choice 3< / option >
< option value = "Choice 4" > Choice 4< / option >
2016-10-12 14:54:14 +02:00
< / select >
2016-09-15 22:04:15 +02:00
< label for = "choices-multiple-groups" > Option groups< / label >
2017-07-19 19:48:46 +02:00
< select class = "form-control" name = "choices-multiple-groups" id = "choices-multiple-groups" placeholder = "This is a placeholder"
multiple>
2016-09-21 14:32:21 +02:00
< 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 >
2016-09-15 22:04:15 +02:00
< / select >
2016-09-29 14:52:08 +02:00
< p > < small > If the following example do not load, the Discogs rate limit has probably been reached. Try again later!< / small > < / p >
2016-09-15 22:04:15 +02:00
< 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 >
2017-07-19 19:48:46 +02:00
< select class = "form-control" data-trigger name = "choices-multiple-rtl" id = "choices-multiple-rtl" placeholder = "This is a placeholder"
multiple dir="rtl">
2018-10-27 22:00:49 +02:00
< option value = "Choice 1" selected > Choice 1< / option >
< option value = "Choice 2" > Choice 2< / option >
< option value = "Choice 3" > Choice 3< / option >
< option value = "Choice 4" disabled > Choice 4< / option >
2016-09-15 22:04:15 +02:00
< / select >
2019-10-10 10:49:00 +02:00
< label for = "choices-multiple-labels" > Use label in event (add/remove)< / label >
2017-03-28 15:41:12 +02:00
< p id = "message" > < / p >
< select id = "choices-multiple-labels" multiple > < / select >
2016-09-15 22:04:15 +02:00
< hr >
< h2 > Single select input< / h2 >
< label for = "choices-single-default" > Default< / label >
2016-10-12 14:54:14 +02:00
< select class = "form-control" data-trigger name = "choices-single-default" id = "choices-single-default" placeholder = "This is a search placeholder" >
2017-09-20 14:18:49 +02:00
< option placeholder > This is a placeholder< / option >
2018-10-27 22:00:49 +02:00
< option value = "Choice 1" > Choice 1< / option >
< option value = "Choice 2" > Choice 2< / option >
< option value = "Choice 3" > Choice 3< / option >
2016-09-15 22:04:15 +02:00
< / select >
2016-09-29 14:52:08 +02:00
< p > < small > If the following two examples do not load, the Discogs rate limit has probably been reached. Try again later!< / small > < / p >
2016-09-15 22:04:15 +02:00
< label for = "choices-single-remote-fetch" > Options from remote source (Fetch API)< / label >
2017-08-03 12:22:21 +02:00
< select class = "form-control" name = "choices-single-remote-fetch" id = "choices-single-remote-fetch" >
< option placeholder > Pick an Arctic Monkeys' record< / option >
< / select >
2016-09-15 22:04:15 +02:00
< label for = "choices-single-remove-xhr" > Options from remote source (XHR) & remove button< / label >
2017-08-03 12:22:21 +02:00
< select class = "form-control" name = "choices-single-remove-xhr" id = "choices-single-remove-xhr" >
< option placeholder > Pick a Smiths' record< / option >
< / select >
2016-09-15 22:04:15 +02:00
< label for = "choices-single-groups" > Option groups< / label >
2016-10-12 14:54:14 +02:00
< select class = "form-control" data-trigger name = "choices-single-groups" id = "choices-single-groups" placeholder = "This is a placeholder" >
2016-09-21 14:32:21 +02:00
< 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 >
2016-09-15 22:04:15 +02:00
< / select >
< label for = "choices-single-rtl" > Right-to-left< / label >
2017-07-19 19:48:46 +02:00
< select class = "form-control" data-trigger name = "choices-single-rtl" id = "choices-single-rtl" placeholder = "This is a placeholder"
dir="rtl">
2018-10-27 22:00:49 +02:00
< option value = "Choice 1" > Choice 1< / option >
< option value = "Choice 2" > Choice 2< / option >
< option value = "Choice 3" > Choice 3< / option >
2016-09-15 22:04:15 +02:00
< / 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" >
2016-09-21 14:32:21 +02:00
< option value = "0" > Zero< / option >
2016-09-15 22:04:15 +02:00
< / 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 >
2017-06-29 09:40:56 +02:00
< label for = "choices-single-selected-option" > Option selected via config with custom properties< / label >
2019-02-11 22:47:47 +01:00
< p > < small > Try searching for 'fantastic', "Label 3" should display< / small > < / p >
2016-09-15 22:04:15 +02:00
< select class = "form-control" name = "choices-single-selected-option" id = "choices-single-selected-option" placeholder = "This is a placeholder" > < / select >
2019-02-11 18:52:22 +01:00
< label for = "choices-with-custom-props-via-html" > Option searchable by custom properties via < code > data-custom-properties< / code > attribute< / label >
2019-02-11 22:47:47 +01:00
< p > < small > Try searching for 'fantastic', "Label 3" should display< / small > < / p >
2019-02-11 18:52:22 +01:00
< select class = "form-control" id = "choices-with-custom-props-via-html" >
< option value = "Dropdown item 1" > Label One< / option >
< option value = "Dropdown item 2" selected disabled > Label Two< / option >
< option value = "Dropdown item 3" data-custom-properties = 'This option is fantastic' > Label Three< / option >
< / select >
2016-09-15 22:04:15 +02:00
< 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" >
2016-09-21 14:32:21 +02:00
< 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 >
2016-09-15 22:04:15 +02:00
< / select >
2017-03-28 15:41:12 +02:00
< label for = "choices-single-custom-templates" > Custom templates< / label >
< select class = "form-control" name = "choices-single-custom-templates" id = "choices-single-custom-templates" placeholder = "This is a placeholder" >
2016-09-30 14:50:23 +02:00
< option value = "React" > React< / option >
2017-03-31 10:09:22 +02:00
< option value = "Angular" > Angular< / option >
< option value = "Ember" > Ember< / option >
< option value = "Vue" > Vue< / option >
2016-09-30 14:50:23 +02:00
< / select >
2017-12-08 16:14:38 +01:00
< p > Below is an example of how you could have two select inputs depend on eachother. 'Tube stations' will only be enabled if
the value of 'Cities' is 'London'< / p >
< label for = "cities" > Cities< / label >
< select class = "form-control" name = "cities" id = "cities" placeholder = "Choose a city" >
< option value = "Leeds" > Leeds< / option >
< option value = "Manchester" > Manchester< / option >
< option value = "London" > London< / option >
< option value = "Sheffield" > Sheffield< / option >
< option value = "Newcastle" > Newcastle< / option >
2016-09-15 22:04:15 +02:00
< / select >
2017-12-08 16:14:38 +01:00
< label for = "tube-stations" > Tube stations< / label >
< select class = "form-control" name = "tube-stations" id = "tube-stations" placeholder = "Choose a tube station" >
< option value = "Moorgate" > Moorgate< / option >
< option value = "St Pauls" > St Pauls< / option >
< option value = "Old Street" > Old Street< / option >
< option value = "Liverpool Street" > Liverpool Street< / option >
< option value = "Kings Cross St. Pancras" > Kings Cross St. Pancras< / option >
2016-09-15 22:04:15 +02:00
< / select >
2018-05-28 17:22:22 +02:00
< hr >
< h2 > Form interaction< / h2 >
2018-05-29 21:39:40 +02:00
< p > Change the values and press reset to restore to initial state.< / p >
2018-05-28 17:22:22 +02:00
< form >
< label for = "reset-simple" > Change me!< / label >
< select class = "form-control" name = "reset-simple" id = "reset-simple" placeholder = "Choose an option" >
< option value = "Option 1" > Option 1< / option >
< option value = "Option 2" selected > Option 2< / option >
< option value = "Option 3" > Option 3< / option >
< option value = "Option 4" > Option 4< / option >
< option value = "Option 5" > Option 5< / option >
< / select >
< label for = "reset-multiple" > And me!< / label >
2018-05-29 16:46:30 +02:00
< select class = "form-control" name = "reset-multiple" id = "reset-multiple" placeholder = "This is a placeholder"
2018-05-28 17:22:22 +02:00
multiple>
2018-10-27 22:00:49 +02:00
< option value = "Choice 1" selected > Choice 1< / option >
< option value = "Choice 2" > Choice 2< / option >
< option value = "Choice 3" > Choice 3< / option >
< option value = "Choice 4" disabled > Choice 4< / option >
2018-05-28 17:22:22 +02:00
< / select >
< button type = "reset" > Reset< / button >
< / form >
2016-04-04 15:43:22 +02:00
< / div >
2016-09-15 22:04:15 +02:00
< / div >
< script >
2017-08-03 12:22:21 +02:00
document.addEventListener('DOMContentLoaded', function() {
var textRemove = new Choices(document.getElementById('choices-text-remove-button'), {
delimiter: ',',
editItems: true,
maxItemCount: 5,
removeItemButton: true,
});
var textUniqueVals = new Choices('#choices-text-unique-values', {
paste: false,
2018-05-29 10:30:05 +02:00
duplicateItemsAllowed: false,
2017-08-03 12:22:21 +02:00
editItems: true,
});
var texti18n = new Choices('#choices-text-i18n', {
paste: false,
2018-05-29 10:30:05 +02:00
duplicateItemsAllowed: false,
2017-08-03 12:22:21 +02:00
editItems: true,
maxItemCount: 5,
addItemText: function(value) {
return 'Appuyez sur Entrée pour ajouter < b > "' + String(value) + '"< / b > ';
},
maxItemText: function(maxItemCount) {
return String(maxItemCount) + 'valeurs peuvent être ajoutées';
},
uniqueItemText: 'Cette valeur est déjà présente',
});
var textEmailFilter = new Choices('#choices-text-email-filter', {
editItems: true,
2019-03-29 10:08:42 +01:00
addItemFilterFn: function (value) {
2019-02-12 19:35:46 +01:00
if (!value) {
return false;
}
const regex = /^(([^< >()\[\]\\.,;:\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,}))$/
const expression = new RegExp(regex.source, 'i');
return expression.test(value);
},
2017-08-03 12:22:21 +02:00
}).setValue(['joe@bloggs.com']);
var textDisabled = new Choices('#choices-text-disabled', {
addItems: false,
removeItems: false,
}).disable();
var textPrependAppendVal = new Choices('#choices-text-prepend-append-value', {
prependValue: 'item-',
appendValue: '-' + Date.now(),
}).removeActiveItems();
var textPresetVal = new Choices('#choices-text-preset-values', {
items: ['Josh Johnson', {
value: 'joe@bloggs.co.uk',
label: 'Joe Bloggs',
customProperties: {
description: 'Joe Blogg is such a generic name'
}
}],
});
var multipleDefault = new Choices(document.getElementById('choices-multiple-groups'));
var multipleFetch = new Choices('#choices-multiple-remote-fetch', {
placeholder: true,
placeholderValue: 'Pick an Strokes record',
maxItemCount: 5,
}).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');
});
})
.catch(function(error) {
console.error(error);
});
});
var multipleCancelButton = new Choices('#choices-multiple-remove-button', {
removeItemButton: true,
});
/* Use label on event */
var choicesSelect = new Choices('#choices-multiple-labels', {
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', false);
2017-10-14 12:29:08 +02:00
choicesSelect.passedElement.element.addEventListener('addItem', function(event) {
2017-08-03 12:22:21 +02:00
document.getElementById('message').innerHTML = 'You just added "' + event.detail.label + '"';
});
2017-10-14 12:29:08 +02:00
choicesSelect.passedElement.element.addEventListener('removeItem', function(event) {
2017-08-03 12:22:21 +02:00
document.getElementById('message').innerHTML = 'You just removed "' + event.detail.label + '"';
});
var singleFetch = new Choices('#choices-single-remote-fetch', {
searchPlaceholderValue: 'Search for 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');
2017-11-11 14:40:18 +01:00
singleFetch.setChoiceByValue('Fake Tales Of San Francisco');
2017-08-03 12:22:21 +02:00
});
})
.catch(function(error) {
console.error(error);
});
});
var singleXhrRemove = new Choices('#choices-single-remove-xhr', {
removeItemButton: true,
searchPlaceholderValue: 'Search for a Smiths\' record'
}).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');
2017-11-11 14:40:18 +01:00
singleXhrRemove.setChoiceByValue('How Soon Is Now?');
2017-08-03 12:22:21 +02:00
} else {
console.error(status);
}
}
}
request.send();
});
var genericExamples = new Choices('[data-trigger]', {
placeholderValue: 'This is a placeholder set in the config',
searchPlaceholderValue: 'This is a search placeholder'
});
var singleNoSearch = new Choices('#choices-single-no-search', {
searchEnabled: 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', false);
var singlePresetOpts = 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 singleSelectedOpt = new Choices('#choices-single-selected-option', {
searchFields: ['label', 'value', 'customProperties.description'],
choices: [
{ value: 'One', label: 'Label One', selected: true },
{ value: 'Two', label: 'Label Two', disabled: true },
{
value: 'Three', label: 'Label Three', customProperties: {
description: 'This option is fantastic'
}
},
],
2017-11-11 14:40:18 +01:00
}).setChoiceByValue('Two');
2017-08-03 12:22:21 +02:00
2019-02-11 18:52:22 +01:00
var customChoicesPropertiesViaDataAttributes = new Choices('#choices-with-custom-props-via-html', {
searchFields: ['label', 'value', 'customProperties']
})
2017-08-03 12:22:21 +02:00
var singleNoSorting = new Choices('#choices-single-no-sorting', {
shouldSort: false,
});
2017-12-08 16:14:38 +01:00
var cities = new Choices(document.getElementById('cities'));
var tubeStations = new Choices(document.getElementById('tube-stations')).disable();
2017-08-03 12:22:21 +02:00
2017-12-08 16:14:38 +01:00
cities.passedElement.element.addEventListener('change', function(e) {
if (e.detail.value === 'London') {
tubeStations.enable();
2017-08-03 12:22:21 +02:00
} else {
2017-12-08 16:14:38 +01:00
tubeStations.disable();
2017-08-03 12:22:21 +02:00
}
});
var customTemplates = new Choices(document.getElementById('choices-single-custom-templates'), {
callbackOnCreateTemplates: function(strToEl) {
var classNames = this.config.classNames;
var itemSelectText = this.config.itemSelectText;
return {
2017-10-14 12:29:08 +02:00
item: function(classNames, data) {
2017-08-03 12:22:21 +02:00
return strToEl('\
< div \
class="'+ String(classNames.item) + ' ' + String(data.highlighted ? classNames.highlightedState : classNames.itemSelectable) + '"\
data-item\
data-id="'+ String(data.id) + '"\
data-value="'+ String(data.value) + '"\
'+ String(data.active ? 'aria-selected="true"' : '') + '\
'+ String(data.disabled ? 'aria-disabled="true"' : '') + '\
>\
< span style = "margin-right:10px;" > 🎉< / span > ' + String(data.label) + '\
< / div > \
');
},
2017-10-14 12:29:08 +02:00
choice: function(classNames, data) {
2017-08-03 12:22:21 +02:00
return strToEl('\
< div \
class="'+ String(classNames.item) + ' ' + String(classNames.itemChoice) + ' ' + String(data.disabled ? classNames.itemDisabled : classNames.itemSelectable) + '"\
data-select-text="'+ String(itemSelectText) + '"\
data-choice \
'+ String(data.disabled ? 'data-choice-disabled aria-disabled="true"' : 'data-choice-selectable') + '\
data-id="'+ String(data.id) + '"\
data-value="'+ String(data.value) + '"\
'+ String(data.groupId > 0 ? 'role="treeitem"' : 'role="option"') + '\
>\
< span style = "margin-right:10px;" > 👉🏽< / span > ' + String(data.label) + '\
< / div > \
');
},
};
}
2016-09-30 14:05:05 +02:00
});
2018-05-28 17:22:22 +02:00
var resetSimple = new Choices(document.getElementById('reset-simple'));
var resetMultiple = new Choices('#reset-multiple', {
removeItemButton: true,
});
2016-09-15 22:04:15 +02:00
});
< / script >
<!-- Google Analytics - Ignore me -->
< script >
2017-08-03 12:22:21 +02:00
window.ga = window.ga || function() { (ga.q = ga.q || []).push(arguments) }; ga.l = +new Date;
2016-09-21 14:32:21 +02:00
ga('create', 'UA-31575166-1', 'auto');
ga('send', 'pageview');
2016-09-15 22:04:15 +02:00
< / script >
< script async src = 'https://www.google-analytics.com/analytics.js' > < / script >
<!-- End Google Analytics -->
2016-03-15 15:39:22 +01:00
< / body >
2017-07-19 19:48:46 +02:00
2017-07-19 21:47:42 +02:00
< / html >