Make WordPress Core

Opened 7 years ago

Last modified 7 years ago

#31885 closed defect (bug)

Widgets in Customizer fail to sync options in select[multiple] — at Initial Version

Reported by: westonruter Owned by:
Milestone: 4.2 Priority: normal
Severity: normal Version: 3.9
Component: Customize Keywords: has-patch
Focuses: javascript Cc:


When a widget is updated in the Customizer, the form values are serialized and sent via Ajax to pass through the widget's update callback. The widget form with the sanitized values is then sent in the Ajax response. The form inputs in the Ajax response are then copied over from the response into the existing form. This sync logic, however, does not account for the special case of select[multiple] inputs which lack a single value to synchronize: the value to synchronize is an array of zero or more values.

The issue with synchronizing the selected state among a select[multiple] option elements is particularly evident when the widget's underlying setting is changed programmatically, as opposed to direct user input. Here is a demonstration of the issue by using a widget undo/redo feature: https://cloudup.com/cuSHMWiSgdM

Big props to davidlonjon for discovering this issue and suggesting a fix.

Change History (1)

Note: See TracTickets for help on using tickets.