AutoCompleteTextField shows completion list shown even if focus is not in the 
text field anymore
------------------------------------------------------------------------------------------------

                 Key: WICKET-1827
                 URL: https://issues.apache.org/jira/browse/WICKET-1827
             Project: Wicket
          Issue Type: Bug
          Components: wicket-extensions
         Environment: Ubuntu/Firefox 3.0.1, OS X/Safari 3.1.2
            Reporter: Jari Aarniala


We have a form with multiple AutoCompleteTextFields in it. If the user enters 
text in text field A, and moves focus to text field B immediately (within the 
throttle delay) e.g. using tab, the autocompletion list appears in text field A 
even though it doesn't have the focus anymore.

Looking at wicket-autocomplete.js, the fix should be pretty straightforward, 
i.e. just check whether the input still has focus at the time when the 
autocompletion list is shown (in doUpdateChoices(resp)). This works for me:

--- 
wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
   (revision 694678)
+++ 
wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
   (working copy)
@@ -304,9 +304,9 @@
 
     function doUpdateChoices(resp){
     
-       // check if the input hasn't been cleared in the meanwhile
+       // check that the input still has focus and hasn't been cleared in the 
meanwhile
        var input=wicketGet(elementId);
-               if (!cfg.showListOnEmptyInput && (input.value==null || 
input.value=="")) {
+               if ((Wicket.Focus.getFocusedElement() != input) || 
(!cfg.showListOnEmptyInput && (input.value==null || input.value==""))) {
                        hideAutoComplete();
                        return;
                }


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to