I'm trying to select the value of a select2 widget using js. I can change the value ok:


The problem I'm having is that this doesn't update the display. It does work in that when you submit the form it's the correct value - so it's working behind the scenes. But it doesn't actually change the display - the new value doesn't appear in the widget. The documentation suggests trigger("change") should do it. I'm not getting any console errors. Is there a trick?


Figured this out. I needed to wrap my jQuery code in:

CRM.$(function($) {


The change trigger - and other select2 events - started working once I did this.

  • 2
    Wow. i wish I had learned this months ago, this would have saved me so much pain and suffering! – deweydb Dec 3 '15 at 1:09
  • This same fix also applies this other way around: listening to the change event. Thanks! – Djizeus Jun 2 '16 at 15:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.