f:combobox prevents form submission when the dropdown is open.
This is done by interrupting form.onsubmit.
It handles form.onsubmit in the following way:
- ComboBox saves the original onsubmit handler in its initialization.
- When the combobox is selected, it shows the dropdown and overwrites the onsubmit handler. The ovirridden onsubmit prevents form submission of the dropdown is open.
- When the dropdown is closed, recovers the saved form.onsubmit.
The step 1 is called from Behavior module with priority 100.
If the form.onsubmit was overridden between step 1 and 2 (that is, if there is a behavior overriding form.onsubmit with priority > 100), it would be overridden in step 3 and lost.
I see this problem happen in Jenkins 1.480, which has not introduced priorities in Behavior module, and it fails to build json to submit.
Though it no longer happens in the latest Jenkins as they introduced priorities in Behavior module, I want to fix this behavior as this can be harmful in some situations.