Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix generated options not receiving result IDs #5586

Merged
merged 1 commit into from Jul 27, 2019
Merged

Commits on Jul 26, 2019

  1. Fix generated options not receiving result IDs

    In order to enable the ability to uniquely identify a result by an ID
    in the DOM, we generate a new ID for the result based on a combination
    of things, including the container ID prefix that is generated and
    used elsewhere in Select2. This has worked fairly well for use cases
    including attaching Select2 to an existing `<select>` and loading in
    options from a remote data set.
    
    Unfortunately, because this process relied on the container ID being
    used as a prefix, this failed for options which were automatically
    generated on initialization using the `data:` option to Select2.
    These were not being generated with an ID because at the time that
    they were being generated, the data adapter was not aware of the
    container it was being used in. This broke some accessibility features
    because we had a mix of options in the results list with IDs, and
    some without, so we fixed the ordering to make this work.
    
    Option generation no longer happens when the data adapter is first
    initialized, which is where it was previously happening, and instead
    it now occurs when the data adapter is bound to the container. This
    allows us to ensure that the data adapter is always aware of the
    container it is being associated with, so now it will be able to
    generate the result IDs.
    
    This also fixes the tests for the array adapter as well as the
    legacy `<input />` adapter so they properly bind to a container
    during the test. This was causing test failures becuase the options
    which would previously be generated during initialization were no
    longer appearing.
    
    Fixes #4350
    kevin-brown committed Jul 26, 2019
    Copy the full SHA
    48f790f View commit details
    Browse the repository at this point in the history