Uploaded image for project: 'Wicket'
  1. Wicket
  2. WICKET-1827

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

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.3.4
    • 1.3.5
    • wicket-extensions
    • None
    • Ubuntu/Firefox 3.0.1, OS X/Safari 3.1.2, Win XP/IE6, Win XP/IE7

    Description

      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; }

      Attachments

        Activity

          People

            jcompagner Johan Compagner
            jari Jari Aarniala
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: