Browse Source

Update escape key for search

pull/4929/head
Jack Lukic 8 years ago
parent
commit
bfea105b12
2 changed files with 31 additions and 38 deletions
  1. 2
      RELEASE-NOTES.md
  2. 67
      src/definitions/modules/search.js

2
RELEASE-NOTES.md

@ -10,8 +10,10 @@
**Enhancements**
- **Search** - Added callback as a parameter to behaviors `query`, `show results`, `hide results`, and `search remote`.
- **Search** - `escape` key now prevents search results from displaying until input is blurred
**Critical Bugs**
- **Dropdown/Search/Checkbox** - Removes use of deprecated
- **Dropdown** - `forceSelection` will no longer select value in `multiple selection dropdown` #4041 #4516
- **Search** - Fixes issue where search will re-appear with incorrect results when using `show `showNoResults: false` to hide no results messages. #4616

67
src/definitions/modules/search.js

@ -39,28 +39,29 @@ $.fn.search = function(parameters) {
? $.extend(true, {}, $.fn.search.settings, parameters)
: $.extend({}, $.fn.search.settings),
className = settings.className,
metadata = settings.metadata,
regExp = settings.regExp,
fields = settings.fields,
selector = settings.selector,
error = settings.error,
namespace = settings.namespace,
eventNamespace = '.' + namespace,
moduleNamespace = namespace + '-module',
$module = $(this),
$prompt = $module.find(selector.prompt),
$searchButton = $module.find(selector.searchButton),
$results = $module.find(selector.results),
$result = $module.find(selector.result),
$category = $module.find(selector.category),
element = this,
instance = $module.data(moduleNamespace),
disabledBubbled = false,
className = settings.className,
metadata = settings.metadata,
regExp = settings.regExp,
fields = settings.fields,
selector = settings.selector,
error = settings.error,
namespace = settings.namespace,
eventNamespace = '.' + namespace,
moduleNamespace = namespace + '-module',
$module = $(this),
$prompt = $module.find(selector.prompt),
$searchButton = $module.find(selector.searchButton),
$results = $module.find(selector.results),
$result = $module.find(selector.result),
$category = $module.find(selector.category),
element = this,
instance = $module.data(moduleNamespace),
disabledBubbled = false,
resultsDismissed = false,
module
;
@ -167,6 +168,7 @@ $.fn.search = function(parameters) {
if(pageLostFocus) {
return;
}
resultsDismissed = false;
if(module.resultsClicked) {
module.debug('Determining if user action caused search to close');
$module
@ -259,7 +261,8 @@ $.fn.search = function(parameters) {
// search shortcuts
if(keyCode == keys.escape) {
module.verbose('Escape key pressed, blurring search field');
module.trigger.blur();
module.hideResults();
resultsDismissed = true;
}
if( module.is.visible() ) {
if(keyCode == keys.enter) {
@ -389,21 +392,6 @@ $.fn.search = function(parameters) {
}
},
trigger: {
blur: function() {
var
events = document.createEvent('HTMLEvents'),
promptElement = $prompt[0]
;
if(promptElement) {
module.verbose('Triggering native blur event');
events.initEvent('blur', false, false);
promptElement.dispatchEvent(events);
promptElement.blur();
}
}
},
get: {
inputEvent: function() {
var
@ -882,6 +870,9 @@ $.fn.search = function(parameters) {
? callback
: function(){}
;
if(resultsDismissed) {
return;
}
if(!module.is.visible() && module.has.results()) {
if( module.can.transition() ) {
module.debug('Showing results with css animations');

Loading…
Cancel
Save