diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 2d803f11f..db3149845 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -66,6 +66,7 @@ **Enhancements** - **Site** - Added colored box shadow defaults. `ui message` now includes individual colored border shadows based on new site defaults. +- **Dropdown** - Adds new setting `minCharacters` which sets the minimum number of characters required to start filtering results #3886 - **Dropdown** - Added `1px` offset for current text so that the text position cursor does not overlap first pixel of text. - **Dropdown** - Added new convenience method `restore placeholder text` - **Rating** - Added new setting `fireOnInit` for rating, which defaults to `false`. When set to true `onRate` will fire when rating is initialized #3712 diff --git a/src/definitions/modules/dropdown.js b/src/definitions/modules/dropdown.js index b8d8e6192..b12378ce3 100644 --- a/src/definitions/modules/dropdown.js +++ b/src/definitions/modules/dropdown.js @@ -236,7 +236,12 @@ $.fn.dropdown = function(parameters) { : module.get.query() ; module.verbose('Searching for query', query); - module.filter(query); + if(module.has.minCharacters(query)) { + module.filter(query); + } + else { + module.hide(); + } }, select: { @@ -2797,6 +2802,16 @@ $.fn.dropdown = function(parameters) { selectInput: function() { return ( $input.is('select') ); }, + minCharacters: function(searchTerm) { + if(settings.minCharacters) { + searchTerm = (searchTerm !== undefined) + ? String(searchTerm) + : String(module.get.query()) + ; + return (searchTerm.length >= settings.minCharacters); + } + return true; + }, firstLetter: function($item, letter) { var text, @@ -3356,6 +3371,7 @@ $.fn.dropdown.settings = { apiSettings : false, + minCharacters : 1, // Minimum characters required to trigger API call saveRemoteData : true, // Whether remote name/value pairs should be stored in sessionStorage to allow remote data to be restored on page refresh throttle : 200, // How long to wait after last user input to search remotely