Projekt

Obecné

Profil

Stáhnout (5.08 KB) Statistiky
| Větev: | Revize:
1

    
2
# vanillaSelectBox v 0.58
3
### A nice select/multiselect ui with no dependency
4

    
5
### New : you can use the discussions page to help me improve this little tool or even suggest other plugins
6

    
7
### vanillaSelectBox is not currently in v1+, please test it carefully before using it in production (interactions with other plugins, css) and be kind enough to report any bug to me so I can improve it. 
8

    
9
I think one improvement would be to integrate the css as style tags because there are still css interferences between the document and vanillaSelectBox
10

    
11
What do you think ?
12

    
13

    
14
![screen shot](https://raw.githubusercontent.com/PhilippeMarcMeyer/vanillaSelectBox/master/vanillaSelectBox.png)
15

    
16
Demo : https://philippemarcmeyer.github.io/vanillaSelectBox/
17

    
18
### Transform an HTML select into a selectBox dropdown
19
#### the select is hidden and the chosen value(s) is/are available in the source select
20

    
21
```
22
let selectBox = new vanillaSelectBox("#brands",{"maxHeight":200,search:true});
23
```
24
* param 1 : css selector of a normal select element
25
* param 2 : options 
26

    
27
### Available options : 
28
* maxWidth : for the UI if you don't want the title to expand to much to the right
29
* minWidth : for the UI if you don't want the title to be to narrow (combining both, you've got a fixed width)
30
* maxHeight : the maxHeight set a scroll when there are too many items 
31
* translations : { "all": "Tous", "items": "éléments","selectAll":"Tout sélectionner","clearAll":"Effacer"}
32
* search : true/false, to provide a search input text to reduce the list
33
* placeHolder : well that's a placeholder !
34
* stayOpen : true/false. defaut is false : that's a drop-down. Set it to true and that"s a list (>= v 0.25)
35
* disableSelectAll : true/false. defaut is false : add a checkbox select all / clear all
36

    
37
### Automatic options :
38
* single or multiple choices : depends on the "multiple" attribute that you put in the select code 
39
* size : if you set a multiple attribute and a size attribute in the select (for instance 3) :
40
  * the title zone will enumerate the chosen values as a comma separated string until it reaches "size"
41
  * Above it will show "x items" or "x" + whatever you put in the translations.items key
42
  * If all the items are selected, it will show "all" or whatever you put in the translations.items all
43

    
44
```
45
<select id="brands" multiple size="3">
46
```
47
#### Result :
48

    
49
![screen shot](https://raw.githubusercontent.com/PhilippeMarcMeyer/vanillaSelectBox/master/sizeMatters.png)
50

    
51

    
52
### Available commands :
53
* empty()
54
* setValue([] || '' || 'all') => the multiple uses an array of values or a comma separated string or the string 'all'
55
* disable()
56
* enable()
57
* destroy()
58
* enableItems([] || '') => array of values or comma delimited list
59
* disableItems([] || '') => array of values or comma delimited list
60
```
61
selectBox = new vanillaSelectBox("#brandsOne", { "maxHeight": 200, "search": true, "placeHolder": "Choose a brand..." });
62
selectBox.disableItems(['Lamborghini','Land Rover']);
63
```
64
#### History : 
65

    
66
v0.58 : Bug fixes
67

    
68
v0.57 : Bug fix (minWidth option not honored)
69

    
70
v0.56 : The multiselect checkboxes are a little smaller, maxWidth option is now working + added minWidth option as well
71
        The button has now a style attribute to protect its appearance 
72

    
73
v0.55 : All attributes from the original select options are copied to the selectBox element.
74
        Excepted => "selected","disabled","data-text","data-value","style"
75
        
76
v0.54 : if all the options of the select are selected by the user then the check all checkbox is checked.
77

    
78
v0.53 : if all the options of the select are selected then the check all checkbox is checked => see demo "select all test"
79

    
80
v0.52 : Better support of select('all') => command is consistent with checkbox and selecting / deselecting while searching select / uncheck only the found items
81

    
82
v0.51 : Translations for select all/clear all + minor css corrections + don't select disabled items
83

    
84
v0.50 : PR by https://github.com/jaguerra2017 adding a select all/clear all check button + optgroup support !
85

    
86
v 0.41 : Bug corrected, the menu content was misplaced if a css transform was applied on a parent
87

    
88
v 0.40 : A click on one selectBox close the other opened boxes
89

    
90
v 0.35 : You can enable and disable items. The already disble options of the select are also used at init time.
91

    
92
v 0.30 : The menu stops moving around on window resize and scroll + z-index in order of creation for multiple instances
93

    
94
v 0.26 : Corrected bug in stayOpen mode with disable() function
95

    
96
v 0.25 : New option stayOpen, and the dropbox is no longer a dropbox but a nice multi-select
97
 
98
 ![screen shot](https://raw.githubusercontent.com/PhilippeMarcMeyer/vanillaSelectBox/master/stayOpen.jpg)
99
 
100
v 0.22 : Migrating the function to vanillaSelectBox prototype => several instances of vanillaSelectBox() but 1 set of functions in memory
101
 
102
v 0.21 : IE 11 compatibility
103

    
104
v 0.20 : working selectBox both single and multiple choices, with search-box !
105

    
106
v 0.10 : functional plugin for both single and multiple selects, without search box for the moment
107

    
108
v 0.02 : added dispatch change event to select + nicer check mark
109

    
110
v 0.01 : first commit => basics for a single select box + the Dom is cleaned if you init twice
111

    
(2-2/9)