Wicket
  1. Wicket
  2. WICKET-4893

AutoCompleteTextField removes DropDownChoice from Page

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 6.3.0
    • Fix Version/s: 6.7.0
    • Component/s: wicket-extensions
    • Labels:
      None
    • Environment:
      Internet Explorer 8

      Description

      Following Situation with Internet Explorer 8:

      I add two Components on a Page.

      A AutoCompleteTextField and beneath a DropDownChoice

      If i type something into the AutoCompleteTextField, a suggestionlist appears and hides the DropDownChoice.
      The DropDownChoice disappears from the Page and is not visible anymore.

      Note: In Firefox and Chrome the DropDownChoice doesn't disappear from the page.

      1. AutoComplete.zip
        33 kB
        Martin Wischnewski

        Issue Links

          Activity

          Martin Wischnewski created issue -
          Martin Wischnewski made changes -
          Field Original Value New Value
          Attachment AutoComplete.zip [ 12555012 ]
          Hide
          Andrea Del Bene added a comment -

          The problem seems to be function hideShowCovered in wicket-autocomplete.js. The issue affects also Opera browser. I don't have a clue about what this function should do, but removing it seems to solve the issue.
          I've tested this solution with the autocomplete example and with Firefox 17, Chromium 20, Opera 12.02 and IE 8 under Windows XP.

          Show
          Andrea Del Bene added a comment - The problem seems to be function hideShowCovered in wicket-autocomplete.js. The issue affects also Opera browser. I don't have a clue about what this function should do, but removing it seems to solve the issue. I've tested this solution with the autocomplete example and with Firefox 17, Chromium 20, Opera 12.02 and IE 8 under Windows XP.
          Hide
          Sven Meier added a comment -

          Read here why the <select>s are removed:

          http://stackoverflow.com/questions/7937/solve-the-select-overlap-bug-in-ie6

          You can configure this with AutoCompleteSettings#useHideShowCoveredIEFix.

          Apparently IE7 fixed this issue, so maybe this feature is no longer needed or we should change that settings to false by default.

          Show
          Sven Meier added a comment - Read here why the <select>s are removed: http://stackoverflow.com/questions/7937/solve-the-select-overlap-bug-in-ie6 You can configure this with AutoCompleteSettings#useHideShowCoveredIEFix. Apparently IE7 fixed this issue, so maybe this feature is no longer needed or we should change that settings to false by default.
          Hide
          Martin Wischnewski added a comment -

          Thank you for the quick note.

          Show
          Martin Wischnewski added a comment - Thank you for the quick note.
          Martin Wischnewski made changes -
          Priority Major [ 3 ] Minor [ 4 ]
          Hide
          Martin Grigorov added a comment -

          The answers in SO say that this is fixed in IE7 but the reporter says he sees it in IE8.

          Martin Wischnewski: can you confirm that useHideShowCoveredIEFix setting helps here ?

          Show
          Martin Grigorov added a comment - The answers in SO say that this is fixed in IE7 but the reporter says he sees it in IE8. Martin Wischnewski : can you confirm that useHideShowCoveredIEFix setting helps here ?
          Hide
          Andrea Del Bene added a comment - - edited

          @Martin Grigorov
          It's our original fix for IE6 (function hideShowCovered ) that is bugging the other browsers (Opera and IE > 6) . If we turn off hideShowCovered by default, all browsers will work fine except the lovely IE6.

          Show
          Andrea Del Bene added a comment - - edited @Martin Grigorov It's our original fix for IE6 (function hideShowCovered ) that is bugging the other browsers (Opera and IE > 6) . If we turn off hideShowCovered by default, all browsers will work fine except the lovely IE6.
          Hide
          Martin Grigorov added a comment -

          If this is the case then I'm all for removing this setting. IE6 is not supported anymore.

          Show
          Martin Grigorov added a comment - If this is the case then I'm all for removing this setting. IE6 is not supported anymore.
          Hide
          Martin Wischnewski added a comment -

          For the sake of completeness.

          If I set useHideShowCoveredIEFix to false, it works fine with IE8.

          Show
          Martin Wischnewski added a comment - For the sake of completeness. If I set useHideShowCoveredIEFix to false, it works fine with IE8.
          Hide
          Martin Grigorov added a comment -

          I'm +1 to remove this setting and all related code with it.

          Show
          Martin Grigorov added a comment - I'm +1 to remove this setting and all related code with it.
          Hide
          Sven Meier added a comment -

          +1 to remove this feature in Wicket 7

          Show
          Sven Meier added a comment - +1 to remove this feature in Wicket 7
          Hide
          Andrea Del Bene added a comment -

          If it was stated somewhere that Wicket 6.0 doesn't support IE6 I agree with Martin, otherwise I would prefer to postpone this change to Wicket 7 as suggested by Sven.

          Show
          Andrea Del Bene added a comment - If it was stated somewhere that Wicket 6.0 doesn't support IE6 I agree with Martin, otherwise I would prefer to postpone this change to Wicket 7 as suggested by Sven.
          Martin Grigorov made changes -
          Fix Version/s 7.0 [ 12322958 ]
          Hide
          Benjamin Steinert added a comment -

          The reason is the following if clause inside hideShowCovered():
          if (popupVisible === 0 || (leftX>acRightX) || (rightX<acLeftX) || (topY>acBottomY) || (bottomY<acTopY))

          The method argument popupVisible is a boolean actually (lines 424 and 452), but the comarison does not do a type conversion (=== 0 is always false).
          To fix this, just change that clause to (=== false).
          But complete removal is also fine +1

          Show
          Benjamin Steinert added a comment - The reason is the following if clause inside hideShowCovered(): if (popupVisible === 0 || (leftX>acRightX) || (rightX<acLeftX) || (topY>acBottomY) || (bottomY<acTopY)) The method argument popupVisible is a boolean actually (lines 424 and 452), but the comarison does not do a type conversion (=== 0 is always false). To fix this, just change that clause to (=== false). But complete removal is also fine +1
          Hide
          Martin Grigorov added a comment -

          Thanks Benjamin!
          I've committed a fix in master. Please test it.

          Show
          Martin Grigorov added a comment - Thanks Benjamin! I've committed a fix in master. Please test it.
          Hide
          Sven Meier added a comment -

          With Martin's commit AutoCompleteSettings#useHideShowCoveredIEFix is working again.

          WICKET-5130 will keep track of removing this setting in Wicket 7.

          Show
          Sven Meier added a comment - With Martin's commit AutoCompleteSettings#useHideShowCoveredIEFix is working again. WICKET-5130 will keep track of removing this setting in Wicket 7.
          Sven Meier made changes -
          Link This issue is broken by WICKET-4635 [ WICKET-4635 ]
          Sven Meier made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Fix Version/s 6.7.0 [ 12323964 ]
          Fix Version/s 7.0 [ 12322958 ]
          Resolution Fixed [ 1 ]
          Sven Meier made changes -
          Link This issue is related to WICKET-5130 [ WICKET-5130 ]

            People

            • Assignee:
              Unassigned
              Reporter:
              Martin Wischnewski
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development