From 6e95b6699c8c4c294fba0be5e692f5e99e94d569 Mon Sep 17 00:00:00 2001 From: superbly Date: Thu, 28 Apr 2011 21:40:28 +0200 Subject: [PATCH] prevent enter in event if suggest field is used in form --- index.html | 2 +- superbly-fields.js | 10 +++++++--- superbly-fields.min.js | 5 +++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index fda69de..407cd58 100755 --- a/index.html +++ b/index.html @@ -29,7 +29,7 @@

superbly fields demo


-
+

diff --git a/superbly-fields.js b/superbly-fields.js index 12da3fc..343a260 100644 --- a/superbly-fields.js +++ b/superbly-fields.js @@ -13,7 +13,7 @@ $.fn.superblySuggestField = function(userOptions) { var settings = { showSuggestionsNumber:10, - suggestions:[], + suggestions:[] }; if(userOptions) { @@ -39,7 +39,7 @@ //prepare needed vars var currentValue = null; - var cuttentItem = null; + var currentItem = null; var selectedIndex = null; var hoverSuggestItems = false; var suggestionstmp = suggestions.slice(); @@ -56,9 +56,10 @@ }); - suggestField.keyup(function(e){ + suggestField.keydown(function(e){ if(e.keyCode == keyMap.downArrow) { selectDown(); + e.preventDefault(); }else if(e.keyCode == keyMap.upArrow) { selectUp() }else if(e.keyCode == keyMap.enter || e.keyCode == keyMap.tab) { @@ -66,6 +67,9 @@ suggestField.val(currentItem); suggestField.next('.superblySuggestItems').css('display', 'none'); } + if(e.keyCode == keyMap.enter){ + e.preventDefault(); + } }else{ suggest($(this).val()); } diff --git a/superbly-fields.min.js b/superbly-fields.min.js index 80a592d..6dcfb0d 100644 --- a/superbly-fields.min.js +++ b/superbly-fields.min.js @@ -8,9 +8,10 @@ http://www.superbly.ch/licenses/gpl-2.0.txt Date: Wed Apr 20 23:43 - */(function($){$.fn.superblySuggestField=function(userOptions){var settings={showSuggestionsNumber:10,suggestions:[],};if(userOptions){$.extend(settings,userOptions);} + */(function($){$.fn.superblySuggestField=function(userOptions){var settings={showSuggestionsNumber:10,suggestions:[]};if(userOptions){$.extend(settings,userOptions);} superblySuggestField(this,settings);return this;};var keyMap={downArrow:40,upArrow:38,enter:13,tab:9,backspace:8} -function superblySuggestField(suggestField,settings){var suggestions=settings.suggestions.sort();var showSuggestionsNumber=settings.showSuggestionsNumber;var currentValue=null;var cuttentItem=null;var selectedIndex=null;var hoverSuggestItems=false;var suggestionstmp=suggestions.slice();suggestField.wrap("
");suggestField.after("
    ");suggestField.next('.superblySuggestItems').mouseover(function(e){hoverSuggestItems=true;});suggestField.next('.superblySuggestItems').mouseleave(function(e){hoverSuggestItems=false;});suggestField.keyup(function(e){if(e.keyCode==keyMap.downArrow){selectDown();}else if(e.keyCode==keyMap.upArrow){selectUp()}else if(e.keyCode==keyMap.enter||e.keyCode==keyMap.tab){if(currentItem!=null){suggestField.val(currentItem);suggestField.next('.superblySuggestItems').css('display','none');}}else{suggest($(this).val());}});suggestField.focus(function(e){suggest($(this).val());});suggestField.focusout(function(e){if(!hoverSuggestItems){suggestField.next('.superblySuggestItems').css('display','none');}});function suggest(value){suggestField.next('.superblySuggestItems').show();if(value==currentValue){return false;} +function superblySuggestField(suggestField,settings){var suggestions=settings.suggestions.sort();var showSuggestionsNumber=settings.showSuggestionsNumber;var currentValue=null;var currentItem=null;var selectedIndex=null;var hoverSuggestItems=false;var suggestionstmp=suggestions.slice();suggestField.wrap("
    ");suggestField.after("
      ");suggestField.next('.superblySuggestItems').mouseover(function(e){hoverSuggestItems=true;});suggestField.next('.superblySuggestItems').mouseleave(function(e){hoverSuggestItems=false;});suggestField.keydown(function(e){if(e.keyCode==keyMap.downArrow){selectDown();e.preventDefault();}else if(e.keyCode==keyMap.upArrow){selectUp()}else if(e.keyCode==keyMap.enter||e.keyCode==keyMap.tab){if(currentItem!=null){suggestField.val(currentItem);suggestField.next('.superblySuggestItems').css('display','none');} +if(e.keyCode==keyMap.enter){e.preventDefault();}}else{suggest($(this).val());}});suggestField.focus(function(e){suggest($(this).val());});suggestField.focusout(function(e){if(!hoverSuggestItems){suggestField.next('.superblySuggestItems').css('display','none');}});function suggest(value){suggestField.next('.superblySuggestItems').show();if(value==currentValue){return false;} suggestField.next('.superblySuggestItems').children('.superblySuggestItem').remove();currentValue=value;var suggestions=getSuggestionsArray(value);for(key in suggestions){suggestField.next('.superblySuggestItems').append("
    • "+suggestions[key]+"
    • ");} selectedIndex=null;suggestField.next('.superblySuggestItems').children('.superblySuggestItem').click(function(e){currentItem=($(this).html());suggestField.val(currentItem);suggestField.next('.superblySuggestItems').css('display','none');});} function getSuggestionsArray(value){var suggestions=new Array();var count=0;for(key in suggestionstmp){if(showSuggestionsNumber<=count){break;}