Veda
Veda

Reputation: 607

Uncaught TypeError: $(...).chosen is not a function in rails application

I am using chosen library in my rails application and running into "Uncaught TypeError: $(...).chosen is not a function" error.

I installed using npm :

"npm install chosen-js"

Code :

<div data-controller="dropdown">
<select id="abcMenu" class= "chosen-select" data-action="dropdown#abc">
    <option value="/abc">A</option>
    <option value="/xyz">B</option>
    <option value="/def">C</option>
</select>
</div>

/app/assets/javascripts/application.js

//= require rails-ujs
//= require jquery
//= require turbolinks
//= require local-time
//= require moment
//= require_tree .

$(document).ready(function(){
  $(".chosen-select").chosen()
});

Am I missing anything here?

Upvotes: 0

Views: 2600

Answers (2)

cnnr
cnnr

Reputation: 1307

Try to apply chosen via turbolinks:load event:

$(document).on('turbolinks:load', function() {
  $(".chosen-select").chosen();
});

Upvotes: 1

InsolentWorm
InsolentWorm

Reputation: 71

I think you need to copy the javascript file to your app/assets/javascripts directory then require it in application.js. I dont think npm does that for you.

Upvotes: 2

Related Questions