DroopeJS
One of our favorite dropdown plugin using jQuery and named it "droope" which is a Swedish name of "drop". It is unique dropdown plugin and provides endless features like searching, tagging, single-select, multi-select and can also define dependencies
Demo
Browser Support
- Internet Explorer 8+
- Chrome 10+
- Firefox 3.5+
- Safari 4+
- Opera 11+
Size
- Minified: 24.16 KB
- Gzip: 7.71 KB
Features
- Single Select
- Multiple Select
- Searchable data with on/off feature.
- Prefill/Preselected data for single and multiple select cases
- Tags formation
- Tags can be created inside or outside (separate/different) of Droope
- Can also be used to represent data in list form.
- Dependent feature for "single/multiple select" (e.g. Droope A depends to Droope B and Droope B depends to Droope C up to 'N' level.)
Usage
HTML
<div id="single" class="ddwn sng"> <div class="DDwrap"> <div class="DDsearch"> <span class="arw"></span> <div class="DDinputWrap"> <input type="text" class="srchTxt" placeholder="Type here" /> </div> </div> </div> </div>
JSON Data format
For Single/MultiSelect: var JSONdata = { "1a":"India", "2a":"Australia", "3a":"United State", "4a":"Zymbombay", "5a":"Saudi Arabia" }; For OptGroup/Category/Parent-Child Case: var JSONdata = { "Country": { "1": "India", "2": "Albania", "3": "Algeria", "4": "America" }, "State": { "5a": "Delhi", "6a": "Uttar Pradesh", "7a": "GOA", "8a": "United Kingdom" }, "District": { "13": "Kanpur", "14": "Lucknow", "15": "Bareiily", "16": "Moradabad" }, "City": { "17a": "Shahjahanpur", "18a": "Bareilly", "19a": "Lucknow" } }
Call
var params = { id: "single", // should be id of Droope main container data: JSONdata }; var instance = new DD(params);
Parameters (Options)
Name | Type | Default Value | Description |
---|---|---|---|
appendTags | Boolean | false | By default tags inserted in prepend manner, to reverse it set true. |
id | String | none | Droope main container Id. |
clearAllInside | Boolean | false | {'Text':'ClearAll'} |
clearTagId | String | none | Node Id, to clear the Droope selected values |
isSearch | Boolean | true | to enable/disable search |
maxTagsCount | Integer | 999 | to limit the number of tags creation. |
maxHeight | Integer | 300 | To set Droope max height |
noDataTxt | String | "No data found in search" | Text which is shown when no data will be found in search |
checkBox | Boolean | false | to switch in singleSelect/multiSelect mode. |
preText | String | "You have selected" | to show pretext when selection made from Droope in "tagInSeparate" container case |
postText | String | "item(s)" | to show post text when selection made from Droope in "tagInSeparate" container case |
parentChkBox | Boolean | false | After enable this option parent/optgroup tuple becomes selectable and if a user selects any optgroup then all its children automatically selected. |
postPlaceholder | String | none | In multi-select Droope to replace default placeholder with postPlaceholder when input box become squeeze. |
prefillData | Array/String/integer | none | to pre-selected data in Droope passed key(s) in Array/String/integer form. |
searchBox | Boolean | true | to enable or disable search box |
sortPrefix | String | none | if JSON data having numeric keys and to prevent JSON data sorting, add any string against each key in JSON data and specify the same prefix string in this parameter reference |
tagwithOptGroup | Boolean | false | to create tags with optgroup/parent text |
tagInSepContainer | String | none | Container id in which you want to show dropdown tags (note- Valid only for multiple select) |
tagTitle | Boolean | false | To enable title text on tags |
tags | Boolean | true | To enable/disable tags |
tagsSorting | Boolean | true | In multiple select Droope (especially in prefill case) to prevent automatic tags sorting |
inputValReset | Boolean | true | to prevent clear text string from input box on blur event |
Methods
addData() : To add new data in existing Droope
instance.addData({ 'data': { "saeed": "saeedkhan" }, 'status': "Checked", prefillData: [2.2, 4.1] });
replaceData() : To replace existing data with new data.
instance.replaceData({ 'data': { "#1": "Agra", "#2": "Delhi", "#3": "Lucknow" }, 'status': "Checked", prefillData: 2 });
destroy() : To destroy Droope
instance.destroy();
select() : to progmatically selection.
For Single Selection instance.select({ 'key': '2' }); For multiple Selection instance.select({ 'key': [2, 4] });
deselect() : to progmatically de-selection.
For Single Selection instance.deselect({ 'key': '2.2' }); For multiple Selection instance.deselect({ 'key': [2.2, 4.1] });
selectedValues() : to get selected item(s) object.
For Single Selection instance.selectedValues(); //output: [3] For multiple Selection instance.selectedValues(); //output: [3,4,6]
Callback methods
onChange()
Fire only when a value change in Droope
new DD({ id: "mis", data: indDD, onChange: function() { alert('On Change callback function Fired'); } });
onDeselect()
Fire only when a value has been deselected
new DD({ id: "mis", data: indDD, onDeselect: function() { alert('On Deselect callback function Fired'); } });
onTagCreate()
Fire only when tag is created
new DD({ id: "mis", data: indDD, onTagCreate: function() { alert('On onTagCreate callback function Fired'); } });
onTagClick()
Fire only when user clicks on tag
new DD({ id: "mis", data: indDD, onTagClick: function() { alert('On onTagClick callback function Fired'); } });
onClickReq()
Fire only when user selects any value either by mouse/touch
new DD({ id: "mis", data: indDD, onClickReq: function() { alert('On onClickReq callback function Fired'); } });
onClearTag()
Fire only when deselection done by node which passed in option -> "clearAllTag"
new DD({ id: "mis", data: indDD, onClearTag: function() { alert('On onClearTag callback function Fired'); } });
Author
Version
v1.0.0