mirror of
https://github.com/devbridge/jQuery-Autocomplete.git
synced 2025-01-03 14:47:25 +00:00
Merge pull request #294 from armno/master
Enable syntax highlighting in readme file
This commit is contained in:
commit
4ca8fc3c5b
148
readme.md
148
readme.md
@ -67,112 +67,134 @@ Autocomplete instance has following methods:
|
|||||||
There are two ways that you can invoke Autocomplete method. One is calling autocomplete on jQuery object and passing method name as string literal.
|
There are two ways that you can invoke Autocomplete method. One is calling autocomplete on jQuery object and passing method name as string literal.
|
||||||
If method has arguments, arguments are passed as consecutive parameters:
|
If method has arguments, arguments are passed as consecutive parameters:
|
||||||
|
|
||||||
$('#autocomplete').autocomplete('disable');
|
```javascript
|
||||||
$('#autocomplete').autocomplete('setOptions', options);
|
$('#autocomplete').autocomplete('disable');
|
||||||
|
$('#autocomplete').autocomplete('setOptions', options);
|
||||||
|
```
|
||||||
|
|
||||||
Or you can get Autocomplete instance by calling autcomplete on jQuery object without any parameters and then invoke desired method.
|
Or you can get Autocomplete instance by calling autcomplete on jQuery object without any parameters and then invoke desired method.
|
||||||
|
|
||||||
$('#autocomplete').autocomplete().disable();
|
```javascript
|
||||||
$('#autocomplete').autocomplete().setOptions(options);
|
$('#autocomplete').autocomplete().disable();
|
||||||
|
$('#autocomplete').autocomplete().setOptions(options);
|
||||||
|
```
|
||||||
|
|
||||||
##Usage
|
##Usage
|
||||||
|
|
||||||
Html:
|
Html:
|
||||||
|
|
||||||
<input type="text" name="country" id="autocomplete"/>
|
```html
|
||||||
|
<input type="text" name="country" id="autocomplete"/>
|
||||||
|
```
|
||||||
|
|
||||||
Ajax lookup:
|
Ajax lookup:
|
||||||
|
|
||||||
$('#autocomplete').autocomplete({
|
```javascript
|
||||||
serviceUrl: '/autocomplete/countries',
|
$('#autocomplete').autocomplete({
|
||||||
onSelect: function (suggestion) {
|
serviceUrl: '/autocomplete/countries',
|
||||||
alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
|
onSelect: function (suggestion) {
|
||||||
}
|
alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
Local lookup (no ajax):
|
Local lookup (no ajax):
|
||||||
|
|
||||||
var countries = [
|
```javascript
|
||||||
{ value: 'Andorra', data: 'AD' },
|
var countries = [
|
||||||
// ...
|
{ value: 'Andorra', data: 'AD' },
|
||||||
{ value: 'Zimbabwe', data: 'ZZ' }
|
// ...
|
||||||
];
|
{ value: 'Zimbabwe', data: 'ZZ' }
|
||||||
|
];
|
||||||
|
|
||||||
$('#autocomplete').autocomplete({
|
$('#autocomplete').autocomplete({
|
||||||
lookup: countries,
|
lookup: countries,
|
||||||
onSelect: function (suggestion) {
|
onSelect: function (suggestion) {
|
||||||
alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
|
alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
```
|
||||||
|
|
||||||
##Styling
|
##Styling
|
||||||
|
|
||||||
Generated HTML markup for suggestions is displayed bellow. You may style it any way you'd like.
|
Generated HTML markup for suggestions is displayed bellow. You may style it any way you'd like.
|
||||||
|
|
||||||
<div class="autocomplete-suggestions">
|
```html
|
||||||
<div class="autocomplete-group"><strong>NHL</strong></div>
|
<div class="autocomplete-suggestions">
|
||||||
<div class="autocomplete-suggestion autocomplete-selected">...</div>
|
<div class="autocomplete-group"><strong>NHL</strong></div>
|
||||||
<div class="autocomplete-suggestion">...</div>
|
<div class="autocomplete-suggestion autocomplete-selected">...</div>
|
||||||
<div class="autocomplete-suggestion">...</div>
|
<div class="autocomplete-suggestion">...</div>
|
||||||
</div>
|
<div class="autocomplete-suggestion">...</div>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
|
|
||||||
Style sample:
|
Style sample:
|
||||||
|
|
||||||
.autocomplete-suggestions { border: 1px solid #999; background: #FFF; overflow: auto; }
|
```css
|
||||||
.autocomplete-suggestion { padding: 2px 5px; white-space: nowrap; overflow: hidden; }
|
.autocomplete-suggestions { border: 1px solid #999; background: #FFF; overflow: auto; }
|
||||||
.autocomplete-selected { background: #F0F0F0; }
|
.autocomplete-suggestion { padding: 2px 5px; white-space: nowrap; overflow: hidden; }
|
||||||
.autocomplete-suggestions strong { font-weight: normal; color: #3399FF; }
|
.autocomplete-selected { background: #F0F0F0; }
|
||||||
.autocomplete-group { padding: 2px 5px; }
|
.autocomplete-suggestions strong { font-weight: normal; color: #3399FF; }
|
||||||
.autocomplete-group strong { display: block; border-bottom: 1px solid #000; }
|
.autocomplete-group { padding: 2px 5px; }
|
||||||
|
.autocomplete-group strong { display: block; border-bottom: 1px solid #000; }
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
##Response Format
|
##Response Format
|
||||||
|
|
||||||
Response from the server must be JSON formatted following JavaScript object:
|
Response from the server must be JSON formatted following JavaScript object:
|
||||||
|
|
||||||
{
|
```javascript
|
||||||
// Query is not required as of version 1.2.5
|
{
|
||||||
"query": "Unit",
|
// Query is not required as of version 1.2.5
|
||||||
"suggestions": [
|
"query": "Unit",
|
||||||
{ "value": "United Arab Emirates", "data": "AE" },
|
"suggestions": [
|
||||||
{ "value": "United Kingdom", "data": "UK" },
|
{ "value": "United Arab Emirates", "data": "AE" },
|
||||||
{ "value": "United States", "data": "US" }
|
{ "value": "United Kingdom", "data": "UK" },
|
||||||
]
|
{ "value": "United States", "data": "US" }
|
||||||
}
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Data can be any value or object. Data object is passed to formatResults function
|
Data can be any value or object. Data object is passed to formatResults function
|
||||||
and onSelect callback. Alternatively, if there is no data you can
|
and onSelect callback. Alternatively, if there is no data you can
|
||||||
supply just a string array for suggestions:
|
supply just a string array for suggestions:
|
||||||
|
|
||||||
{
|
```json
|
||||||
"query": "Unit",
|
{
|
||||||
"suggestions": ["United Arab Emirates", "United Kingdom", "United States"]
|
"query": "Unit",
|
||||||
}
|
"suggestions": ["United Arab Emirates", "United Kingdom", "United States"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Non standard query/results
|
## Non standard query/results
|
||||||
|
|
||||||
If your ajax service expects the query in a different format, and returns data in a different format than the standard response,
|
If your ajax service expects the query in a different format, and returns data in a different format than the standard response,
|
||||||
you can supply the "paramName" and "transformResult" options:
|
you can supply the "paramName" and "transformResult" options:
|
||||||
|
|
||||||
$('#autocomplete').autocomplete({
|
```javascript
|
||||||
paramName: 'searchString',
|
$('#autocomplete').autocomplete({
|
||||||
transformResult: function(response) {
|
paramName: 'searchString',
|
||||||
return {
|
transformResult: function(response) {
|
||||||
suggestions: $.map(response.myData, function(dataItem) {
|
return {
|
||||||
return { value: dataItem.valueField, data: dataItem.dataField };
|
suggestions: $.map(response.myData, function(dataItem) {
|
||||||
})
|
return { value: dataItem.valueField, data: dataItem.dataField };
|
||||||
};
|
})
|
||||||
}
|
};
|
||||||
})
|
}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
## Grouping Results
|
## Grouping Results
|
||||||
|
|
||||||
Specify `groupBy` option of you data property if you wish results to be displayed in groups. For example, set `groupBy: 'category'` if your suggestion data format is:
|
Specify `groupBy` option of you data property if you wish results to be displayed in groups. For example, set `groupBy: 'category'` if your suggestion data format is:
|
||||||
|
|
||||||
[
|
```javascript
|
||||||
{ value: 'Chicago Blackhawks', data: { category: 'NHL' } },
|
[
|
||||||
{ value: 'Chicago Bulls', data: { category: 'NBA' } }
|
{ value: 'Chicago Blackhawks', data: { category: 'NHL' } },
|
||||||
]
|
{ value: 'Chicago Bulls', data: { category: 'NBA' } }
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
Results will be formatted into two groups **NHL** and **NBA**.
|
Results will be formatted into two groups **NHL** and **NBA**.
|
||||||
|
|
||||||
@ -180,7 +202,9 @@ Results will be formatted into two groups **NHL** and **NBA**.
|
|||||||
|
|
||||||
If you use it with jQuery UI library it also has plugin named `autocomplete`. In this case you can use plugin alias `devbridgeAutocomplete`:
|
If you use it with jQuery UI library it also has plugin named `autocomplete`. In this case you can use plugin alias `devbridgeAutocomplete`:
|
||||||
|
|
||||||
$('.autocomplete').devbridgeAutocomplete({ ... });
|
```javascript
|
||||||
|
$('.autocomplete').devbridgeAutocomplete({ ... });
|
||||||
|
```
|
||||||
|
|
||||||
##License
|
##License
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user