Details
-
Type: Bug
-
Status: Resolved
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: EE-3.3.0.GA_P09
-
Fix Version/s: EE-3.3.0.GA_P10
-
Component/s: ICE-Components
-
Labels:None
-
Environment:Any
-
Support Case References:Support Case 14706 - https://icesoft.my.salesforce.com/5004u00002k1Fd4
-
Workaround Exists:Yes
-
Workaround Description:Use h:selectManyCheckbox with f:ajax instead of ice:selectManyCheckbox with partialSubmit or use ace:submitMonitor instead of the blockUIOnSubmit context parameter.
Description
Clicking on ice:selectManyCheckbox labels doesn't check/uncheck their corresponding checkboxes when the component has partialSubmit="true" and the application is configured with blockUIOnSubmit set to true as well.
It seems to be an issue exclusively with ice:selectManyCheckbox. Using ice:selectBooleanCheckbox with ice:outputLabel seems to work fine. Also, using h:selectManyCheckbox with <f:ajax /> works fine too.
This issue was reproduced with the latest patch sent to the customer and also with the latest patch release P09.
It seems to be an issue exclusively with ice:selectManyCheckbox. Using ice:selectBooleanCheckbox with ice:outputLabel seems to work fine. Also, using h:selectManyCheckbox with <f:ajax /> works fine too.
This issue was reproduced with the latest patch sent to the customer and also with the latest patch release P09.
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Committed fix to prevent the partial submit request from being made if the click event comes from the label element of the checkbox, so that only the checkbox's click event gets processed, and thus avoid a double request.
The issue was that two requests were being made when the label was clicked. This is because the click event is only defined on the root element. So, click events in child elements bubble up until the root element is reached and the partial submit is initiated. Because a click on a label element simulates a click on the input element the label is for, two click events where being triggered. The first one was triggered by the label, which has no client ID and before the checkbox was actually checked. So, no value was actually being submitted with that request and the second request was blocked by the blockUIOnSubmit functionality. This fix prevents the first request triggered by the label, so that only the request triggered by the checkbox itself is sent to the server.