Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Won't Fix
-
Affects Version/s: EE-1.8.2.GA_P03, EE-1.8.2.GA_P04
-
Fix Version/s: EE-1.8.2.GA_P05
-
Component/s: ICE-Components
-
Labels:None
-
Environment:IE8 in Quirks mode or IE7
-
Assignee Priority:P1
-
Workaround Exists:Yes
-
Workaround Description:
Description
When tabbing through a form with some various inputs, there is a partialSubmit called each time. On this submit a basic JavaScript counter is updated. When tabbing into an ice:selectOneMenu there is some different behavior seen:
- focus is lost when tabbing into the menu, tabbing begins at the top page input.
- focus stays on the menu but when tabbing out it won't move to the next field.
This issue is only reproducible on IE8 running in Quirks mode and IE7 with the JavaScript counter.
- focus is lost when tabbing into the menu, tabbing begins at the top page input.
- focus stays on the menu but when tabbing out it won't move to the next field.
This issue is only reproducible on IE8 running in Quirks mode and IE7 with the JavaScript counter.
It seems that the provided test case exposes a bug in Internet Explorer, not in ICEfaces. The DOM update received after tabbing from the second inputText to the selectOneMenu contains changes for a the DIV element that holds the counter and a script element that increments this counter. The updated DIV is styled with "float: right;" CSS rule. Once this rule is removed the focus issue does not occur anymore.
This kind of issue cannot be addressed from within ICEfaces. So, as a workaround the ice:panelGroup that generates the styled DIV (holding the counter value) could be moved outside its parent ice:panelGroup. This way the generated update will only target the script element. Another solution would be to change the styling to avoid using the 'float' rule.
Before:
{globals.date});<ice:panelGroup>
<ice:panelGroup id="dateAndTime" style="float: right;">0</ice:panelGroup>
<script>
refreshTime2(#
</script>
</ice:panelGroup>
After:
<ice:panelGroup id="dateAndTime" style="float: right;">0</ice:panelGroup>
<ice:panelGroup>
<script>
refreshTime2(#{globals.date}
);
</script>
</ice:panelGroup>