Using Select2 get error - "Error: No select2/compat/query"

JavascriptJqueryJquery Select2

Javascript Problem Overview


I am attempting to use the Select2 library in my site to leverage placecomplete (following it's rather simple configuration steps here), but when I run the code I get a strange error -

>Error: No select2/compat/query`

I've tried googling it and it really seems like no one else has encountered this?

My code in a nutshell is,

loading the files...

<link href="scripts/Select2/dist/css/select2.min.css" rel="stylesheet" />
<script src="scripts/Select2/dist/js/select2.min.js"></script>
<script src="scripts/jquery.placecomplete.js">//<![CDATA[//]]></script>

Tagging an input element in my body...

<input id="example123" class="example123" type="text" />

In my document.ready function, calling the following code...

$('#example123').placecomplete({});

and thats where it throws the error.

Any ideas where Im going wrong, and what this error means?

Javascript Solutions


Solution 1 - Javascript

You are running into two issues here, both of which can easily be fixed.

  1. Select2 4.0.0 no longer supports the query option in the slimmed down, standard build. This must be included in the full build (select2.full.js) as it is handled through a backwards compatibility module.

  2. You are using Placecomplete and it depends on an older version of Select2. It looks like Select2 3.5.2+ can work, but I can tell from the options that it is using, it cannot work with Select2 4.0.0. There is an open ticket about this for Placecomplete.

Solution 2 - Javascript

For me, changing the <input /> tag to a <select> tag worked.

Solution 3 - Javascript

I've had this when you have two controls on your web page with the same Id - I had a hidden control and a select (the hidden control was first).

Solution 4 - Javascript

This can also happen if you try to initialize select2 on field type that does not "support" select2, like a hidden field or something along those lines.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSimonView Question on Stackoverflow
Solution 1 - JavascriptKevin Brown-SilvaView Answer on Stackoverflow
Solution 2 - JavascriptPayam KhaninejadView Answer on Stackoverflow
Solution 3 - JavascriptLiamView Answer on Stackoverflow
Solution 4 - JavascriptriiView Answer on Stackoverflow