Skip to content

Changing [value] for multiple select only adds items to selection (does not remove any) #141

Open
@mactyr

Description

@mactyr

When I change the [value] of a select2 with the "multiple" attribute turned on, options in the new value that were not previously selected become selected, but all options that were previously selected also remain selected -- so my selection is the union of the old values and the new values, rather than just being the new values.

This also means that if I pass an empty array to [value], nothing changes, whereas I would expect all options to be un-selected.

I believe the issue is in setElementValue(), the innermost if needs an else to turn the selected property off when the option is not contained in the new value, like so:

if (newValue.indexOf(option.value) > -1) {
  this.renderer.setElementProperty(option, 'selected', 'true');
} else {
  this.renderer.setElementProperty(option, 'selected', null);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions