diff --git a/README.md b/README.md
index 22ba937..28d9d10 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ Lightweight AJAX autocomplete for Bootstrap
* [jQuery](https://jquery.com/download/)
* [Bootstrap 3](http://getbootstrap.com/)
-
+* [Bootstrap 4](http://getbootstrap.com/)
## Usage
@@ -31,23 +31,109 @@ $('#input').bootcomplete({url:'/search.php',options});
]
```
-## Options
-
-* **url:** The url to submit query
-
-* **method:** Request method (get, post)
-
-* **wrapperClass:** CSS Class used for the element wrapper
-
-* **menuClass:** CSS Class used for the suggestions menu
-
-* **idField:** Include hidden input field for selected option id (true,false) Default: true
-
-* **idFieldName:** Hidden input field name. Default: elementName_id
+### Custom Dropdown
+You can set a custom format for each option of the dropdown with dropdownFormat option:
-* **minLength:** Minimum string length before sending query request
-
-* **dataParams:** Send additional data parameters with request. Usage: ```dataParams: {keyName : value}```
+```javascript
+var options = {
+ url: 'someURL',
+ dropdownFormat: function( j ){
+ return ' ' + j.label +''
+ }
+ }
+
+$('input[name=autocomplete]').bootcomplete(options)
+```
-* **formParams:** Send chained form parameters with request. Usage: ```formParams: {keyName : $('#formElement')}```
+#### Serverside JSON Response Object
+```php
+[
+ {
+ "id": "1",
+ "label": "My Custom Option",
+ "logo": "http:\/\/url\/web\/uploads\/avatars\/avatar-custom.png"
+ }
+]
+```
+## Options
+
Option | +Type | +Default | +Description | +
---|---|---|---|
url | +string | +null | +The url to submit query | +
method | +string | +GET | +Request method (get, post) | +
wrapperClass | +string | +null | +CSS Class used for the element wrapper | +
menuClass | +string | +null | +CSS Class used for the suggestions menu | +
idField | +string | +null | +Include hidden input field for selected option id (true,false) Default: true | +
idFieldName | +string | +null | +Hidden input field name. Default: elementName_id | +
minLength | +int | +null | +Minimum string length before sending query request | +
dataParams | +json | +null | +Send additional data parameters with request. Usage: dataParams: {keyName : value} |
+
formParams | +jQuery Object | +null | +Send chained form parameters with request. Usage: formParams: {keyName : $('#formElement')} |
+
beforeSelect | +function | +null | +Callback, triggers before the population of dropdown list. Usage: beforeSelect: function(){ alert('try me') } |
+
afterSelect | +Function | +null | +Callback, triggers after select an option from the dropdown list. Usage: afterSelect: function(id, value) { alert('try me after') } |
+
dropdownFormat | +Function | +null | +Callback, returns a custom format for the dropdown list. Usage: dropdownFormat: function( j ) { return ''+ j.label + ' - ' + j.someExtraTextFromTheServerJSON +'' } |
+